我是hibernate的新手。我遇到了hibernate会话问题。当我试图插入我将使用的数据 session.openSession();
完成更新后我使用session.flush(); session.clear();和session.close()。 我不知道如何保持这一点。我得到了死锁异常。在插入的同时,我打开另一个会话以获取数据。
请帮帮我..这是我现有的示例代码
@Autowired
@Qualifier("messageListenerReportSessionFactory")
private SessionFactory messageListenerReportSessionFactory;
Session session = messageListenerReportSessionFactory.openSession();
if(session != null && session.isOpen()){
try{
Transaction tx= session.beginTransaction();
Query q = session.createQuery("Update "+tableName+" set isUser = ? where id = ?");
q.setInteger(0, 2);
q.setLong(1, id);
q.executeUpdate();
tx.commit(); tx = null;
}catch(Exception ex){
PointelTraceLogger.logger.log(Level.ERROR, "[Audit] Error in updateUser() in com.pointel.application.database.pointelreport.MessageListenerReportDao");
PointelTraceLogger.writeStackTrace(ex);
}finally{
session.clear();
session.close();
}
}