我要删除entities,因此要从数据库中删除行。
entities
我 确实 要删除某个实体及其所有child行。不过,我 不 希望从它删除任何行Parent。
child
Parent
如何 我能做到这一点?
Kennel是,Parent Entity并且Dog是我要删除的实体。
Kennel
Parent Entity
Dog
请参阅下面的代码,了解我如何在“狗窝实体”中链接2:
@OneToMany(cascade = CascadeType.MERGE, orphanRemoval = false) @JoinColumn(name = "KENNEL_ID", referencedColumnName = "ID", updatable = true, insertable = true) private Set<Dog> dogs;
目前,当我删除狗entitie(S),其相关的养犬实体 中 也被删除。
编辑:将狗映射到狗窝:
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinColumn(name = "KENNEL_ID") private kennel kennel;
当前,当我删除狗实体时,其相关的狗窝实体也将被删除。
原因是您已cascade=CascadeType.ALL设置ManyToOne注释。这样,我们告诉ORM,当我们删除(或任何其他操作)时,Dog它也应该将相同的操作传播到Kennel实体。
cascade=CascadeType.ALL
ManyToOne
Remove cascade attribute in ManyToOne(cascade = CascadeType.ALL ).
我可以保持狗舍中显示的@oneToMany关系相同吗?
您可能需要考虑的更改很少。
JoinColumn
oneToMany
ManyTone
mappedBy="kennel"
OneToMany
JoinColum
kennel
show_sql
cascade
ALL
MERGE
PERSIST, MERGE