2012-04-12 102 views
0

我想在數據訪問層中實現經典的POP方法:檢索內存中的某個對象並將其從數據庫中刪除。問題是,如果我在檢索後刪除它,我不能在代碼中使用它,那麼是否有anysolution?休眠:實現POP方法

現在我正在使用對象執行某些操作後將其移除。

謝謝

UPD#1:

public Notification pop() { 
    Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 

    return (Notification) session.createCriteria(Notification.class) 
     .uniqueResult(); 
} 

我想取回後刪除的對象,但仍然能夠訪問它在我的代碼。

+0

你能不能給一些代碼來證明你的問題嗎?謝謝 – 2012-04-12 06:31:36

+0

如果你刪除了一個不能在代碼中使用的對象,請參見 – nKognito 2012-04-12 06:36:14

+0

以下的更新。你的代碼只是試圖從通知中返回一個唯一的resutl,但由於沒有限制(並且假設你有多條記錄),它會拋出一個異常 – NimChimpsky 2012-04-12 06:54:41

回答

1

我想我對你想表達的想法有所瞭解。你應該做一個拷貝構造函數爲你Notification類並執行以下操作:

public Notification popAndRemove(){ 
    Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 

    Notification notification = session.createCriteria(Notification.class) 
     .uniqueResult();  

    Notification newNotification = new Notification(notification); 

    session.delete(notification); 
    return newNotification; 
}