dex*_*ers 9 java hibernate jpa jpa-2.0
我继承了一个代码库,几乎所有关系都有以下注释:
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.REMOVE }, mappedBy = "someThing")
@OnDelete(action = OnDeleteAction.CASCADE)
Run Code Online (Sandbox Code Playgroud)
现在我无法理解@OnDelete首先是什么.Hibernate:OnDelete vs cascade = CascadeType.REMOVE很有意思,但遗憾的是没有任何答案,JavaDoc for @OnDelete也特别没用.
从其他问题来看,OnDelete注释看起来像某种程度上让DB进行级联,而@OneToMany使用ORM 的级联指令可以做到,但是将它们组合在一起的目的是什么?
并且,@OneToManycascade指令真的不允许ORM实现生成基于DB的级联吗?
Rog*_*ays 14
假设你有一对一的方向关系
class House {
@OneToOne
Object door;
}
Run Code Online (Sandbox Code Playgroud)
如果您使用CascadeType.REMOVE,则删除房屋也将删除门.
@OneToOne(cascade=CascadeType.REMOVE)
Object door;
Run Code Online (Sandbox Code Playgroud)
如果你使用@OnDelete,那么删除门也将删除房子.
@OneToOne
@OnDelete(action = OnDeleteAction.CASCADE)
Object door;
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多内容:http://www.ninthavenue.com.au/jpa-cascadetype-remove-vs-hibernate-ondelete
| 归档时间: |
|
| 查看次数: |
10660 次 |
| 最近记录: |