Hibernate 需要帮助优化HQL以减少返回的列吗

Hibernate 需要帮助优化HQL以减少返回的列吗,hibernate,hql,Hibernate,Hql,我的HQL如下: 从ProductMain作为pm加入获取pm.person作为ps加入获取pm.personProduct作为pp加入获取pm.personReturn作为pr加入获取pp.PersonObject作为po,其中pp.id in(180000)和ps.id>=:lowRange和ps.id错误-904由于资源不可用导致执行失败。原因代码、资源类型类型和资源名称资源名称。。。。因此,您需要了解它与您的查询的关系 关于只获取必需属性是,您可以这样写:- SELECT pm.col1

我的HQL如下:
从ProductMain作为pm加入获取pm.person作为ps加入获取pm.personProduct作为pp加入获取pm.personReturn作为pr加入获取pp.PersonObject作为po,其中pp.id in(180000)和ps.id>=:lowRange和ps.id错误-904由于资源不可用导致执行失败。原因代码、资源类型类型和资源名称资源名称。。。。因此,您需要了解它与您的查询的关系

关于只获取必需属性是,您可以这样写:-

SELECT pm.col1, 
       pm.col2 
FROM 
from   ProductMain as pm 
JOINFETCH pm.person AS ps 
JOINFETCH pm.personproduct AS pp 
JOINFETCH pm.personreturn AS pr 
JOINFETCH pp.personobjects AS po 
WHERE pp.id IN (180,000) 
AND   ps.id >= :lowRange 
AND   ps.id <= :highRange
选择pm.col1,
下午2点
从…起
从ProductMain到pm
将pm.person作为ps
JOINFETCH pm.personproduct作为pp
JOINFETCH pm.personreturn作为pr
JOINFETCH pp.PersonObject作为po
其中pp.id为(180000)
和ps.id>=:低范围

ps.id如果有人像我一样偶然发现了这个问题,我会发现这篇关于Hibernat最佳实践的有趣博文:


参见“1.2 Pojo”一章:回答上面评论部分的问题:是的,您可以选择单个列并将它们传递到Pojo的构造函数中,该构造函数可以是同一个实体,但有另一个构造函数。

是否有任何东西阻止您使用
select
,例如
select pm.col1,ProductMain中的pm.col2作为pm?我可以这样做吗?所以我只使用ProductMain中的select pm.col1,pm.col2作为pm join fetch pm.person作为ps join fetch pm.personProduct作为pp j等等?另外,假设还有其他与ProductMain链接的表,如Car、House等,我只需要其中的几个列。。。我想问题是这个表有一百列,当我得到结果时,它会使资源区域过载。因此,我认为如果我可以指定一些我需要的列,那么它将减少问题?我认为问题是表有100列,当我得到结果时,它会使资源区域过载。因此,我认为如果我可以指定一些我需要的列,那么它将减少问题?我假设如果返回的结果是针对特定的列,那么它仍然可以映射到Hibernate对象?其他的表连接呢?如果ProductMain具有指向具有100列的表的其他链接,我如何限制它们返回的列?那么返回的对象是ProductMain对象还是仅包含我想要的行的对象列表?我希望使用hibernate对象映射为结果。