Hibernate @OneToOne例外

时间:2014-11-20 20:09:37

标签: java hibernate one-to-one

我使用hibernate在2个表之间建立了关系。父记录并不总是有一个随之而来的子记录,因此当我查询表以恢复结果集时,我得到一个"集合与任何会话都没有关联#34;例外。

当结果集仅包含带子项的记录或仅包含没有子项的记录时,不会发生此异常;它仅在结果集混合时发生。

是否有可以使用的注释,以便当父记录没有关联的子记录时,查询不会抛出异常?我尝试使用@NotFound忽略缺少子记录,但它没有用。我仍然得到同样的例外。

我已经在网上搜索了这个问题的解决方案,但似乎Hibernate还没有设置来处理这种特殊情况。

2 个答案:

答案 0 :(得分:0)

尝试获取子记录:

select p
from Parent p
left join fetch p.child

其中孩子是从父母到子女的@OneToOne关联。

答案 1 :(得分:0)

你应该告诉我们你的课程。我不明白你怎么能在OneToOne关系中收集。也许尝试在你的财产上设置optional = true。