HQL删除具有多对多/一对多映射的对象

时间:2016-02-02 16:27:38

标签: java sql oracle hibernate hql

我对如何使用HQL删除hibernate实体感到有点困惑。我有实体Entity,这个实体有多个多对多/一对多的映射。如果我使用HQL查询删除Entity

Delete from Entity x where x.id = :id

将休眠处理删除实体配置文件中指定的子对象和关系吗?

2 个答案:

答案 0 :(得分:0)

如果你已正确级联你的类,hibernate必须处理你的删除操作。但只有在做出改变之后。但是如果你使用hibernate,最好删除实体而不是表

中的行

答案 1 :(得分:0)

级联选项在这种情况下很有用。 在Hibernate中有许多级联类型: ALL,PERSIST,MERGE,REMOVE,REFRESH,DELETE,SAVE_UPDATE等。您可以根据自己的特定需要使用它们。 例: @OneToMany(mappedBy =“id”,cascade = CascadeType.ALL)

参考: https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/annotations/CascadeType.html