2012-08-03 64 views
4

我使用休眠來堅持我的實體。有沒有辦法檢測一個實體是否會在當前事務中新創建?我不能使用PostInsertEventListener,因爲我必須將其他元素添加到休眠操作隊列中。休眠檢測級聯插入

PersistEventListener是不夠的,因爲它不會檢測級聯插入。

+1

哪個版本的hibernate?冬眠[攔截器](http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/events.html)會有幫助嗎? – pd40 2012-08-07 09:44:18

+0

它是休眠4.1。攔截器會在級聯插入中被調用嗎? – 2012-08-07 14:53:29

回答

1

在閱讀pd40的評論後,我試着使用攔截器。我發現,攔截器方法:

public Boolean isTransient(Object entity)時,即使是在級聯插入新創建的對象

將始終被調用。

由於此方法將被稱爲之前PersistEventLister/MergeEventListener我有可能添加額外的元素到休眠動作隊列。

非常感謝pd40給我提示。