我正在使用hibernate注释和Mysql用于数据库。 我有两个表一是买方表,另一个是CashReceipt。 CashReciept在购买者表上有一个参考密钥。
那么如何删除特定买方的CashReceipt记录?
我试过这个查询
session.createQuery("Delete FROM CashReceipt cr LEFT JOIN cr.purchase p WHERE p.id=:sid")
.setInteger("sid", purchase.getId()).executeUpdate();
答案 0 :(得分:1)
我通过尝试此查询得到了我的答案。
session.createQuery("Delete FROM CashReceipt cr WHERE cr.purchase.id=:sid")
.setInteger("sid", purchase.getId()).executeUpdate();
答案 1 :(得分:0)
为什么在使用session.delete时手动执行此操作:
SomeEntity ent = session.get(SomeEntity.class, '1234');
session.delete(ent);
此外,您可能希望查看父表的CascadeType。在父表中将其设置为CascadeType.DELETE。
@OneToMany(cascade = CascadeType.DELETE)
List<Child> childElements;
它将删除与该父级关联的所有子元素。