2014-11-20 125 views
0

我已经使用hibernate建立了两个表之间的关系。父记录并不总是有与之相伴的子记录,所以当我查询表来返回结果集时,我得到一个“集合与任何会话都没有关联”的异常。休眠@OneToOne异常

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

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

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

回答

0

尝试获取子记录过:

select p 
from Parent p 
left join fetch p.child 

其中孩子是从父@OneToOne协会儿童。

0

您应该向我们展示您的课程。我不明白你怎么能收集OneToOne关系。也许尝试在你的属性上设置optional = true。