我有一堆實體,我想知道哪一個已經與NHibernate保存()(沒有刷新)。我該怎麼做 ?有沒有辦法知道一個實體是否由NHibernate管理?
2
A
回答
0
如果你想知道,如果事情已經由NHibernate的堅持,你很可能只是檢查「ID」字段,看看它是否已經從默認值
+6
ID的存在並不保證該實體已被保留。 Identity/Native只是NHibernate支持的衆多身份生成算法之一。其他人,如HiLo(用於減少對數據庫的查詢並提高性能),在將記錄插入數據庫之前(但不一定是在之前)分配標識符。 – Jay
4
按照Hibernate's Documentation改變,會話有一個名爲方法Contains(obj)
。
boolean contains(Object object) Check if this instance is associated with this Session. Parameters: object - an instance of a persistent class Returns: true if the given instance is associated with this Session
好吧,我想這應該在你的情況下工作,因爲你的新創建的對象並不在通知後的Isession調用Save
(或Get
)前。試試看,告訴我們會發生什麼。
另一種選擇是在ISession之上創建一個抽象,並實現自己的代碼來檢查實體是否已被保存。
相關問題
- 1. 實體管理器沒有辦法getCriteriaBuilder()
- 2. 有沒有辦法知道一行是否更新?
- 3. 有沒有辦法從EntityManager獲取所有的管理實體
- 4. 有沒有辦法知道文件名是否是Excel格式?
- 5. iPhone - 有沒有辦法知道引用是否(仍然)有效?
- 6. 有沒有辦法知道手機是否有通話?
- 7. 有沒有辦法知道一個對象的C#方法是否被調用?
- 8. 有沒有辦法讓linqpad知道一個字段是主鍵?
- 9. 有沒有辦法知道當前有多少個webrole實例?
- 10. 有沒有辦法知道TCP套接字是否由TCPEventBusBridge關閉
- 11. 有沒有辦法知道timerTask是否已完成?
- 12. 有沒有辦法知道用戶是否發送了短信?
- 13. 有沒有辦法知道Flash Player是否安裝了SWFObject?
- 14. 有沒有辦法知道Data Saver是否啓用?
- 15. 有沒有辦法知道rxjs websocket是否打開
- 16. 有沒有辦法知道異常是否被禁用?
- 17. 有沒有辦法知道用戶是否打開郵件?
- 18. 有沒有辦法知道ExecutorService是否成功結束?
- 19. 有沒有辦法知道HttpResponse是否在Https中?
- 20. 有沒有辦法知道是否已經創建了IWin32Window?
- 21. 有沒有辦法知道$ http請求是否超時?
- 22. 有沒有辦法知道當前域是否啓用地理定位?
- 23. 有沒有辦法在VB.NET中知道一個處理程序是否已經註冊了一個事件?
- 24. 有沒有辦法知道核心數據中的2個實體之間是否存在關係?
- 25. 有什麼辦法知道媒體播放器是否開始
- 26. 有沒有辦法讓webpack知道全局是否沒有聲明?
- 27. 有沒有辦法知道返回一個布爾
- 28. 有沒有辦法知道一個ftp shell腳本失敗?
- 29. 有沒有辦法知道另一個hwnd何時關閉?
- 30. 有沒有人知道宇宙字體是否作爲網頁字體託管?
*流利* NHibernate,具體還是隻是NHibernate?也就是說,您是否試圖通過FNH還是HBM來區分實體? – Jay
不,我想知道一個實體是否被調用了Save()。 – Z0RrO
感謝您的澄清。這與Fluent沒有任何關係。你是否也可以訪問調用'Save()'的'ISession',或者只訪問實體? – Jay