目前我在我的应用程序中使用Hibernate,Spring和postgres作为数据库。不幸的是,与数据库的连接不断增加。
DAO Implementation类中的每个方法都会增加连接数。下面是DAO Impl中的代码段。
@Autowired
SessionFactory sessionFactory;
/**
* Used to save or update a SourceConfig.
*
* @throws Exception
*/
@Override
@Transactional
public Long saveOrUpdateSourceConfig(SourceConfig sourceconfig) {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
.getRequest();
HttpSession httpsession = request.getSession();
try {
session.saveOrUpdate(sourceconfig);
session.flush();
tx.commit();
} catch (JDBCException e) {
tx.rollback();
String nextException = e.getSQLException().getNextException().getLocalizedMessage();
e.printStackTrace();
System.out.println("next version" + nextException);
}
Serializable id = session.getIdentifier(sourceconfig);
return (Long) id;
}
我无法使用 session.getcurrentsession()并且始终返回null并且我没有在DAOImpl中的任何位置关闭会话。
请高度赞赏您的回复。