首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hibernate注释中删除带有父键的子表记录?

问如何在hibernate注释中删除带有父键的子表记录?
EN

Stack Overflow用户
提问于 2014-05-26 05:04:52
回答 2查看 6.1K关注 0票数 1

我使用hibernate注释和Mysql作为数据库。我有两张表,一张是买方表,另一张是CashReceipt。CashReciept在Purchaser表上有一个引用键。

那么,我如何删除特定买方的CashReceipt记录呢?

我尝试过这个查询

代码语言:javascript
复制
session.createQuery("Delete FROM CashReceipt cr LEFT JOIN cr.purchase p WHERE p.id=:sid")
                .setInteger("sid", purchase.getId()).executeUpdate();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-26 05:29:15

我通过尝试这个问题得到了答案。

代码语言:javascript
复制
 session.createQuery("Delete FROM CashReceipt cr WHERE cr.purchase.id=:sid")
                            .setInteger("sid", purchase.getId()).executeUpdate();
票数 1
EN

Stack Overflow用户

发布于 2014-05-26 05:10:40

当您可以使用session.delete时,为什么要手动这样做:

代码语言:javascript
复制
SomeEntity ent = session.get(SomeEntity.class, '1234');
session.delete(ent);

此外,您可能希望查看父表的CascadeType。将其设置为父表中的CascadeType.DELETE。

代码语言:javascript
复制
@OneToMany(cascade = CascadeType.DELETE)
List<Child> childElements;

它将删除与该父元素关联的所有子元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23863046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档