gpt4 book ai didi

java - 没有 session.getTransaction 方法不存在

转载 作者:行者123 更新时间:2023-12-01 13:37:03 25 4
gpt4 key购买 nike

![在此处输入图像描述][1] SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); session session = sessionFactory.openSession(); session.beginTransaction(); session .保存(学生); session .get code error screenshot

当我尝试调用 session 的 getTransaction 方法以便提交事务时,出现此错误。如何纠正此错误

最佳答案

要提交事务,您需要 Transaction 对象,该对象将由 session.beginTransaction(); 返回。

按如下方式更改代码:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); 
Transaction tx = session.beginTransaction(); //org.hibernate.Transaction
session.save(student);
tx.commit();

更新

使用正确的 try-catch block 是一个很好的做法:

public boolean saveStudent(Student student)
{
Session session=null;
Transaction tx=null;
SessionFactory sessionFactory = null;
try
{
sessionFactory = new Configuration().configure().buildSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
session.save(student);
tx.commit();
return true;
}
catch (Exception e)
{
if(tx!=null && tx.isActive())
{
tx.rollback();//rolebacks the currect active transaction
}
return false;
}
finally
{
if(session!=null && session.isOpen())
{
session.close();
}
if(tx!=null)
{
tx=null;
}
}
}

关于java - 没有 session.getTransaction 方法不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com