有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案