[英]Hibernate; HQL; why does the delete query not work, but select does?
我想從表中刪除某些記錄。 這些記錄在其他表中有一些子記錄。
為了能夠刪除主記錄,我必須先刪除子記錄。
以下是使用的HQL示例:
delete from ItineraryBooking ib where ib.booking.user.id = :paramId
基本上,這應該刪除所有ItineraryBookings(單獨表中的記錄),這些都加入到Booking表中。 可以使用User表連接Booking表。
奇怪的是,當您將上述內容更改為:
from ItineraryBooking ib where ib.booking.user.id = :paramId
並執行Query.list(),它會正常工作。
每當我想執行delete變體時,看起來Hibernate會生成一個奇怪的刪除語句。 我的HQL錯了嗎? 還是Hibernate的怪癖?
可能有幫助的簡單問題:
只是為了好奇,你在交易中運行這個HQL嗎? 選擇不需要事務,但刪除確實需要它。
你在執行刪除HQL后刷新會話嗎?
您是在刪除,在同一交易中選擇還是在單獨的交易中選擇?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.