当父项已合并时,是否有任何干净的方法来获取子对象的id?
即
Parent parent = parentDao.get(parentid);
Child child = new Child();
parent.addChild(child);
parentDao.merge(parent);
child.getId() // is null
我和父母之间有多对一的关系。
另一个问题就是这个问题,唯一有效的解决办法就是遍历儿童名单,但这听起来很可怕而且很糟糕。
JPA How can I get the generated id/object when using merge from parent but child is created?
肯定必须有一个更好的解决方案。
答案 0 :(得分:0)
考虑以下双向实体结构,即
class Parent{
@OneToMany
List<Child> children;
}
class Child{
@ManyToOne
Parent parent;
}
为了获得孩子的身份,你需要先坚持孩子。
与entityManager.persist(child)
类似,然后将其与parent
关联,除非您在Parent类中将cascadeType
设置为Cascade.ALL
。