[英]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.