使用级联删除生成实体

时间:2016-10-03 13:54:56

标签: hibernate hibernate-tools hibernate-cascade

我通过JBoss hibernate reverse engineering为我们的大型数据库生成实体。我希望在实体中看到级联注释,但是没有在代中看到它们。

有没有办法指导hibernate考虑外键并使用级联注释生成实体?

1 个答案:

答案 0 :(得分:2)

不幸的是,虽然这是可能的,但还没有记录。 它应该记录在6.2.4.3. foreign-key

查看hibernate-reverse-engineering-3.0.dtd,元素中有级联属性:

  • 外键/多到一个
  • 外键/一到一个
  • 外键/逆一个对一
  • 外键/设置

代码是真相! 看一下(hibernate-tools branch 5.2),我们可以看到cascade的可能值:

对于org.hibernate.tool.hbm2x.pojo.EntityPOJOClass中的Hibernate# getHibernateCascadeTypeAnnotation https://github.com/hibernate/hibernate-tools/blob/5.2/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java#L497
值为[ persist, merge, delete, refresh, all ](多次接受) 使用的枚举类型是 org.hibernate.annotations.CascadeType

对于org.hibernate.tool.hbm2x.pojo.EntityPOJOClass# getCascadeTypes 中的JPA: https://github.com/hibernate/hibernate-tools/blob/5.2/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java#L421
值为extension=dom.so (多次接受) 使用的枚举类型是 javax.persistence.CascadeType