Hibernate:实现POP方法

时间:2012-04-12 06:27:38

标签: java hibernate

我想在数据访问层中实现经典的POP方法:在内存中检索一些对象并从数据库中删除它。问题是,如果我在检索后删除它,我不能在代码中使用它,那么是否有解决方案?

现在我在使用该对象执行某些操作后将其删除。

谢谢

UPD#1:

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

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

我希望在检索对象后删除它,但仍然可以在我的代码中访问它。

1 个答案:

答案 0 :(得分: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;
}