java异常在提交后从EntityManager获取会话时发生,在会话前关闭
通过在Dao类中的注释配置下面获取EntityManager的实例。在Rest API中使用Dao类,如下所示。当第一次调用save dao方法时,新的UserEntity('name-1','password-1')保存在数据库中,但当调用第二个save方法(userDao.save('new UserEntity('name-2','password-2'))时,出现异常,消息为“java.lang.IllegalStateException:会话/EntityManager已关闭”
public class REST {
@Autowire
DaoUser userDao;
public void save(){
userDao.save(new UserEntity('name-1', 'password-1'));
userDao.save(new UserEntity('name-2', 'password-2'));
}
}
class UserDao {
@PersistenceContext(
name = "stadto",
type = PersistenceContextType.TRANSACTION
)
private EntityManager manager;
public void save(UserEntity user){
Session session = manager.unwrap(Session.class);
Transaction transaction = session.getTransaction();
transaction.beginTransaction();
session.save(user);
transaction.commit();
session.close();
}
}
共 (0) 个答案