如何解决休眠-查询返回类型
| 我有一个(相对)简单的HQL查询,它返回两个具有一对多关系的连接实体。 作为查询的结果,我想获取一个类型为entity1的列表,其中entity1.entity2被映射。 因为我在结果集中得到了笛卡尔积,所以对于每个entity2(多边),我都有1行,因此得到entity1的重复项。 因此,如果我列出结果,则会得到重复的条目。 为了解决这个问题,我使用query.setResultTransformer( Criteria.DISTINCT_ROOT_ENTITY );
但是,这并不总是返回rntity1的列表,而是有时返回entity2的列表。
有没有一种方法可以指定ResultSet的\“ main \”实体?
解决方法
您的第二个查询要求同时返回消息和命令,因此这就是为什么同时获得两种类型的对象的原因。只要让它返回味精。
您应该能够将所需的WITH移到WHERE子句中
SELECT msg FROM Messages AS msg LEFT JOIN FETCH msg.commands AS cmd WHERE( lower( cmd.status ) = \'failed\' )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。