【发布时间】:2015-11-30 11:17:38
【问题描述】:
我正在进行正常的更新操作。我将会话设为空。请在下面的代码中找到异常和日志。
春季实现类-
@Autowired
private SessionFactory sessionFactory;
Session session=null;
private void assignSessionLocalVariable(){
if(session == null || !session.isOpen()){
try{
session = sessionFactory.openSession();
}catch(Exception e){session = null;
logger.error("Stack trace ::"+e);
logger.error("/### Session is null ####/");
}
}
}
@Override
public List<User> archieveUser(int userId) {
assignSessionLocalVariable();
User userIdDel = (User) session.get(User.class, userId);
if(userIdDel.getStatus().equalsIgnoreCase("YES"))
{ userIdDel.setStatus("NO"); }
else{ userIdDel.setStatus("YES"); }
logger.info("### object of the user ####"+userIdDel);
try{
Transaction tx=session.beginTransaction();
session.saveOrUpdate(userIdDel);
tx.commit();
}
catch(Exception e){
logger.error("### Exception occured while archiveing USERS in IMPL #### ["+e+"] \n");
}
session.close();
return new UserDAOImpl().getAllUser();
}
public void closeSessionObjects(){
if(null != session) session.clear();
}
日志文件-
2015-11-30 16:42:54 INFO UserDAOImpl:74 - ### 用户的对象
用户 [id=2 firstName Bharat lastName Bhushan creation_time 2015-11-30 16:19:24.0 last_update_time 2015-11-30 16:19:24.0 电子邮件bh@yahoo.com mobile 5800000 status YES] 2015-11-30 16:42:54 错误 UserDAOImpl:30 - 堆栈跟踪 ::java.lang.NullPointerException 2015-11-30 16:42:54 错误 UserDAOImpl:31 - /### 会话为空 ####/
我正在调用 archiveUser() 方法,然后获取上述日志。如果我使用“加载”代替“获取”,那么同样的问题也会出现。请帮助。
【问题讨论】:
标签: hibernate spring-mvc session