我使用hibernate注释和Mysql作为数据库。我有两张表,一张是买方表,另一张是CashReceipt。CashReciept在Purchaser表上有一个引用键。
那么,我如何删除特定买方的CashReceipt记录呢?
我尝试过这个查询
session.createQuery("Delete FROM CashReceipt cr LEFT JOIN cr.purchase p WHERE p.id=:sid")
.setInteger("sid", purchase.getId()).executeUpdate();发布于 2014-05-26 05:29:15
我通过尝试这个问题得到了答案。
session.createQuery("Delete FROM CashReceipt cr WHERE cr.purchase.id=:sid")
.setInteger("sid", purchase.getId()).executeUpdate();发布于 2014-05-26 05:10:40
当您可以使用session.delete时,为什么要手动这样做:
SomeEntity ent = session.get(SomeEntity.class, '1234');
session.delete(ent);此外,您可能希望查看父表的CascadeType。将其设置为父表中的CascadeType.DELETE。
@OneToMany(cascade = CascadeType.DELETE)
List<Child> childElements;它将删除与该父元素关联的所有子元素。
https://stackoverflow.com/questions/23863046
复制相似问题