當我使用Hibernate的saveOrUpdate(Object)方法時。我如何知道行更新或新行添加到表中? saveOrUpdate(Object)方法的返回類型是void,因此在調用此方法後無法找到結果。Hibernate的saveOrUpdate(Object)方法
請幫助我。
當我使用Hibernate的saveOrUpdate(Object)方法時。我如何知道行更新或新行添加到表中? saveOrUpdate(Object)方法的返回類型是void,因此在調用此方法後無法找到結果。Hibernate的saveOrUpdate(Object)方法
請幫助我。
如果被保留的對象具有標識符屬性設置爲0(/ ID爲空),那麼它意味着它是一個新的對象,將在分貝新插入。 插入後,hibernate會在標識符字段中設置id值。 如果對象已經設置了標識符屬性,那麼這意味着對象已經存在並且可以更新
編輯:你看過冬眠攔截器了嗎?可能是有用的。 example
據我所知你的問題和評論居住。您可以創建事件偵聽器並實現兩個接口:IPreUpdateEventListener,IPreInsertEventListener
e.q.
public class AuditEventListener : IPreUpdateEventListener, IPreInsertEventListener
{
public bool OnPreUpdate(PreUpdateEvent @event)
{
//your stuff here
return false;
}
public bool OnPreInsert(PreInsertEvent @event)
{
//your stuff here
return false;
}
}
但我覺得這很荒謬。使用ORM意味着你不關心持久性,所有的工作都是完成單位工作。如果你真的需要插入和更新只需使用保存()或update()方法,這樣你就會知道究竟是用哪種操作。
是的,你是對的daedlus,但喜歡當我們使用save()方法將其返回序列化,我們可以在長變量存儲,如果它大於0L意味着添加一行,但是當我們使用saveOrUpdate()方法方法是不返回任何東西,我們如何知道它是更新或添加任何行。任何方法或代碼? 由於提前 – Vikram 2010-06-14 12:47:31
是上面的檢查還不足以知道,如果行被插入或更新?你的用例是什麼? – Inv3r53 2010-06-14 13:35:10