我有以下保存方法,可将对象插入并提交到数据库中:
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);
}
我还需要做一些其他事情才能使连接提交吗?
答案 0 :(得分:0)
@Transactional
批注将已经使用代理创建事务。
因此,您无需从sessionFactory中打开一个新会话,只需获取当前会话即可。
这应该为您工作:
Session session = HibernateUtil.getSessionFactory().getCurrenstSession();
session.save(this);
请让我知道它是否有效:)