在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
。
- 如何在CDI环境中管理EntityManager生命周期(使用Tomcat)
- Spring RESTful控制器方法改进建议
- 将jdbc驱动程序添加到类路径
- JPA:返回多个实体的查询
- java.lang.NullPointerException Hibernate与Ehcache一起使用
- 使用Spring 3进行基于注释的事务管理和对象映射的最小Hibernate 4 XML配置?
- Hibernate使用嵌入的ElementCollection抛出ConcurrentModificationException
- Spring启动+ Spring数据JPA +二级缓存给出mutate错误
- 如何在Hibernate中持久化非实体子类中的实体