HIbernate 返回重复或未压缩的对象

HIbernate returning duplicate or uncompressed objects

我有两个具有 oneToMany 关系的实体。

例如: 大学实体 学院编号, 设置学生 (OneToMany, fetchType.EAGER)

学生实体 student_Id 大学(多对一)

当我使用 hibernates 查询大学的数据库时,它返回 collegeEntity 的 n 条记录,其中 n 是学生人数。

我希望查询结果是 collegeEntity 的 1 条记录,学生的大小为 "n"。

我正在使用 Hibernate - 3.6。我的查询在标准休眠中使用 CollegeId 来获取这些记录。请指导我做错了什么。

提前致谢!

通常,当您从查询的基本实体中获取重复的行时,这是因为您附加到该查询的联接。

避免这种行为的一种方法是在查询中使用 DISTINT 子句,这将删除结果中所有重复的行。使用 DISTINT 的标准可能会非常棘手,我建议您阅读不同的标准投影,这是您需要的

特别是使用 Hibernate 时,很难确定这些重复行的原因,所以如果您发现自己处于这种情况,您应该启用生成的 SQL 日志,然后找到问题的根源.

我发现了问题。这是因为获取策略而发生的。应该是学生大学实体中的LAZY fetch策略。

CollegeEntity collegeId, 设置学生(OneToMany, fetchType.LAZY)