我使用hibernate在2个表之间建立了关系。父记录并不总是有一个随之而来的子记录,因此当我查询表以恢复结果集时,我得到一个"集合与任何会话都没有关联#34;例外。
当结果集仅包含带子项的记录或仅包含没有子项的记录时,不会发生此异常;它仅在结果集混合时发生。
是否有可以使用的注释,以便当父记录没有关联的子记录时,查询不会抛出异常?我尝试使用@NotFound忽略缺少子记录,但它没有用。我仍然得到同样的例外。
我已经在网上搜索了这个问题的解决方案,但似乎Hibernate还没有设置来处理这种特殊情况。
答案 0 :(得分:0)
尝试获取子记录:
select p
from Parent p
left join fetch p.child
其中孩子是从父母到子女的@OneToOne关联。
答案 1 :(得分:0)
你应该告诉我们你的课程。我不明白你怎么能在OneToOne关系中收集。也许尝试在你的财产上设置optional = true。