hibernate - 查询返回类型

时间:2011-06-14 14:52:39

标签: hibernate mapping hibernate-mapping

我有一个(相对)简单的HQL查询,它返回两个具有一对多关系的连接实体。 作为查询的结果,我想获得类型为entity1的列表,其中entity1.entity2被映射。 因为我在结果集中得到了一个笛卡尔积,对于每个实体2(多边),我有1行,我得到了entity1的重复。 因此,如果我列出()结果,我会得到重复的条目。

要解决此问题,请使用query.setResultTransformer( Criteria.DISTINCT_ROOT_ENTITY );

但是,这并不总是返回rntity1的列表,但有时会返回entity2的列表。

有没有办法指定ResultSet的“main”实体?

1 个答案:

答案 0 :(得分:1)

您的第二个查询要求返回消息和命令,这就是您获得两种类型对象的原因。只需让它返回消息。

您应该能够将所需的WITH移动到WHERE子句

SELECT msg FROM Messages AS msg LEFT JOIN FETCH msg.commands AS cmd WHERE( lower( cmd.status ) = 'failed' )