Session/EntityManager is closed

这个问题也是郁闷, 也就是说Session被关闭了, 而这个Session又是必须的. 

关键是我并没有关闭, 也找不到是哪里被关闭了的.

 

 我把代码改成如下的样子, 则是可以运行的, 在执行之前,开启事务

  /**
     * 查询用户
     * @param uid
     * @return
     */
    @Override
    public User get(Integer uid) {
        Transaction transaction = session.beginTransaction();
        User user = null;
        try {
            user = session.get(User.class,uid);
        } catch(Exception e) {
            e.printStackTrace();
        }
         return user;
    }

原因分析: 每次调用了session之后, 在事务提交了以后就会把session关闭

                这是因为Hibernate会维护这个Session, 在我提交事务的时候关闭Session

解决思路: 1. 在代码执行之前, 开启Session;

                2. 在业务处理结束的时候再关闭Transaction事务

 

猜你喜欢

转载自www.cnblogs.com/zjulanjian/p/10940959.html
今日推荐