我想從表中刪除某些記錄。這些記錄在其他表中有一些子記錄。休眠; 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