使用事务装饰器提交插入内容

时间:2018-07-07 00:46:40

标签: java spring hibernate

我有以下保存方法,可将对象插入并提交到数据库中:

 public void save() {

    Session session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
    session.save(this);
    session.getTransaction().commit();

}

但是,如果我使用装饰器,则它实际上不会提交给数据库:

@Transactional
public void save() {

    Session session = HibernateUtil.getSessionFactory().openSession();
    session.save(this);

}

我还需要做一些其他事情才能使连接提交吗?

1 个答案:

答案 0 :(得分:0)

@Transactional批注将已经使用代理创建事务。 因此,您无需从sessionFactory中打开一个新会话,只需获取当前会话即可。 这应该为您工作:

Session session = HibernateUtil.getSessionFactory().getCurrenstSession();
session.save(this);

请让我知道它是否有效:)