在hibernate中合并父节点后获取子ID

当父母被合并时,是否有任何干净的方法来获取子对象的id?

Parent parent = parentDao.get(parentid); Child child = new Child(); parent.addChild(child); parentDao.merge(parent); child.getId() // is null 

我和父母之间有多对一的关系。

另一个问题就是这个问题,唯一有效的解决办法是遍历儿童名单,但这听起来很可怕而且很糟糕。

JPA如何在从父级使用合并但是创建子级时获取生成的id /对象?

当然,必须有一个更好的解决方案。

考虑以下双向实体结构,即

 class Parent{ @OneToMany List children; } class Child{ @ManyToOne Parent parent; } 

你需要先坚持孩子才能获得孩子的身份。

比如entityManager.persist(child) ,然后将它与parent关联,除非你在父类cascadeType Cascade.ALL设置为Cascade.ALL