繁体   English   中英

JPA一对多查询结果问题

[英]JPA one-to-many query result problem

好的,我在父类和子类之间有一对多的映射。 我可以保存父对象,它将自动保存子对象,但是问题是在父类上执行SELECT时。 看来我正在为数据库表中的每个子对象获取一个父对象。 因此,如果我将1个父对象与2个子对象一起保存,则当我使用Hibernate选择Criteria时,我将获得2个父对象! 我只想让Hibernate返回1个父对象及其2个子对象在Set child字段内。

我猜我的映射一定是错误的。 有人可以帮忙吗?

class Parent{
 Long parentId;
 @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
 @JoinColumn(name = "parent_table_id", nullable = false)
 Set childs;
 ....
}

class Child{
 Long childId;

}

注意:“ parent_table_id”引用父主键。 同样,此值未映射到任何父对象或子对象。 我手动插入此值,并且仅在@JoinColumn批注中使用它。 好的,我是JPA的新手,但是当我保存带有Child对象的Parent时,Hibernate似乎会自动在Child表中插入字段“ parent_table_id”的值。 这可能引起问题吗?

您的映射看起来不错,听起来您实际上需要的是:

criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

当您执行内部联接时,导致条件查询中返回多个结果行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM