hibernate EntityManager的关闭连接问题

卡布达巨人 发布于 2016/08/24 09:46
阅读 1K+
收藏 0

在查询方面使用this.getJpaTemplate().find(queryString)来查询,在压测的时候高并发是没问题的,

然而使用了EntityManager em=this.getJpaTemplate().getEntityManagerFactory().createEntityManager();

用em去使用sql或者hql查询后,用了em.close;但是压测到13就挂了,之前的那种方式查询压测是1500线程数都没问题不会挂,所以想问问用em为啥关闭不了,没效果,如果不对又该怎么做?用的hibernate3以及jpa

加载中
1
学而不思则罔
学而不思则罔
不清楚你的整个技术栈是怎么样的,如果结合spring使用的话,我在项目中是这样使用EntityManager的,直接在dao实现类中:
@PersistenceContext private EntityManager entityManager;

在处理完成后不使用close而是使用:

entityManager.clear();
不用每次都去创建 EntityManager 然后手动关闭吧,对象交给spring管理就行了

学而不思则罔
学而不思则罔
回复 @卡布达巨人 : 测过啊,我们压到web服务器并发极限了,在数据库访问端也不会出你说的这个问题。
卡布达巨人
卡布达巨人
你那接口通过压测没,并发支持多少
0
Leveon
Leveon

我现在也是碰到类似的问题,用到这一块的有时候总是报链接超时,用close也不管用。

private EntityManagerFactory emf;

会不会这个的问题,你们这个是怎么管理的

返回顶部
顶部