我在我的數據庫USERS和USER_SESSIONS中有兩個表。 USER_SESSIONS具有映射到用戶表的用戶ID的用戶ID外鍵,並且我已經定義,在Hibernate中的許多一對一的關係:如何刪除外鍵關係中的所有孩子
<many-to-one name="user" column="USERID" class="com.Users" />
我怎樣寫一個休眠的方法來刪除所有行給定用戶的USER_SESSIONS數據庫時,只給予用戶名。
我的第一次嘗試是加載給定用戶名的用戶對象,然後執行HSQL刪除該用戶的用戶ID的所有會話。有一種更簡單的方法嗎?
即使父行仍然存在,是否要刪除所有子項? – smk
您可以使用HQL刪除記錄:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html#batch-direct。使用像'刪除UserSession us us whereUser =:user'這樣的查詢。也就是說,如果你還刪除了擁有User的用戶,最好是級聯。 – millimoose
@Sajit是的我希望用戶留下來,但我想刪除他們的所有會話。例如,當用戶註銷時,我想註銷其所有會話,在這種情況下涉及從數據庫中刪除行。我希望這更有意義。 –