我想从表中删除某些记录。这些记录在其他表中有一些子记录。休眠; HQL;为什么删除查询不起作用,但选择呢?
为了能够删除主记录,我必须先删除子记录。
下面是所用的HQL的例子:
delete from ItineraryBooking ib where ib.booking.user.id = :paramId
基本上,这应该删除所有ItineraryBookings(在单独的表中的记录),这些被接合到预订表。预订表可以与用户表连接。
奇怪的是,当你改变了上面:
from ItineraryBooking ib where ib.booking.user.id = :paramId
并执行Query.list(),它会工作得很好。
每当我想执行删除变体,它看起来像Hibernate生成一个奇怪的删除语句。我的HQL错了吗?或者它是休眠怪癖?
是的,你是对的,他们是joines。我将研究级联删除功能,因为我相信*应该*像那样工作,但它根本不会。有一个原因是为什么其他相关记录必须明确删除。 感谢您的回答! – 2010-01-21 07:26:56