jpa query.getResultList()被阻塞,没有错误
我有一个奇怪的例子,我写了一个简单的代码来在JPA2.0中查询DB 一切似乎都很好,但当代码点击query.getResultList时 它只是卡住了,没有响应,然后glassfish服务器获得了大约20%的CPU 然后什么也不发生,也不会生成任何错误或日志 怎么了 我用的是玻璃鱼,日食,网虫 这是我的代码:jpa query.getResultList()被阻塞,没有错误,jpa,Jpa,我有一个奇怪的例子,我写了一个简单的代码来在JPA2.0中查询DB 一切似乎都很好,但当代码点击query.getResultList时 它只是卡住了,没有响应,然后glassfish服务器获得了大约20%的CPU 然后什么也不发生,也不会生成任何错误或日志 怎么了 我用的是玻璃鱼,日食,网虫 这是我的代码: public List<?> getData(EntityManager em,Class entityClass){ Query query=em.createQuery("
public List<?> getData(EntityManager em,Class entityClass){
Query query=em.createQuery("select entity from tblPromotions entity");
return query.getResultList();
}
提前感谢试着调试一下,它卡在哪里了?kill或ctrl c打印堆栈跟踪,或使用调试器 还可以打开finest上的日志记录 它可能是一个数据库锁,因为它是一个读取,所以您必须使用某种序列化事务隔离,这可能是一个坏主意
amy对象在表中的位置如何,可能需要很长时间。在我的例子中,在调试到Hibernate后,我发现查询返回的行太多,无法处理。 因此,可以通过为“最大结果”设置一些值来解决此问题:
query.setMaxResults(100);
顺便说一句:在这种情况下,总是尝试在框架中调试,它会给你答案:>