Hibernate:OnDelete vs cascade = CascadeType.REMOVE

时间:2011-10-30 22:19:12

标签: database hibernate jpa annotations

@OnDelete(action=OnDeleteAction.CASCADE)cascade=CascadeType.REMOVE

之间有何区别?

我在这里读到:Is there an equivalent annotation for OnDelete in JPA2 使用@OnDelete(action=OnDeleteAction.CASCADE)级联将由DB处理,而使用cascade=CascadeType.REMOVE级联将由ORM(Hibernate)处理。

  1. 你能解释一下Hibernate处理与DB处理之间的区别吗? 如何完成“由DB”

  2. 此外,我想知道我为什么要关心差异。我的意思是,为什么我应该选择一种态度而不是另一种态度。

  3. 最后一个问题是,查看OnDelete javadoc我想知道为什么它没有说明是什么以及为什么我应该使用它(BTW哪里是继承路径?)。那么这些点记录在哪里?

1 个答案:

答案 0 :(得分:0)

1 - 某些数据库支持级联选项而某些数据库不支持:如果数据库支持级联,那么hibernate将相应地创建模式并让数据库处理级联。

2 - 如果数据库句柄级联使用它,其他副hibernate必须查询数据库,这是一个性能丢失。

3 - 不知道