2011-10-12 95 views
1

我有一个奇怪的情况下,我写了一个简单的代码来查询数据库中JPA2.0JPA query.getResultList()得到stucked,没有错误

一切似乎不错,但是当代码命中query.getResultList ();

它只是卡住并没有响应,则GlassFish服务器获取CPU

的20%左右,然后什么也没有发生,也不会产生任何错误或日志。

有什么不对?

我使用GlassFish中的EclipseLink,NetBeans的

这是我的代码:

public List<?> getData(EntityManager em,Class entityClass){ 
Query query=em.createQuery("select entity from tblPromotions entity"); 
return query.getResultList(); 
} 

在此先感谢

回答

0

尝试调试它,它在哪里卡住了? (杀死或ctrl c打印堆栈跟踪,或使用调试器)

也打开最好的日志记录。

它可能是一个数据库锁,因为它是一个读,你必须使用某种序列化的事务隔离,这可能是一个坏主意。

桌子上有多少东西,它可能会花很长时间。

0

在我的情况调试到Hibernate后,我发现查询只是返回了太多的行以供处理。 所以它是通过设置最大价值的一些解决结果:

query.setMaxResults(100); 

BTW:总是这样的情况下尝试调试到框架,它可以给你答案:>

相关问题