EJBTransactionRolledBackException-大量数据-TypedQuery

时间:2019-01-09 11:10:05

标签: java hibernate ejb

我有一个看起来像这样的函数:

@PersistenceContext(unitName="persistence-unit")
private EntityManager em;

@Override
public List<Person> (Integer startPosition, Integer maxResult)
{

TypedQuery<Person> findAllQuery = em.createQuery("SELECT DISTINT p FROM Person p LEFT JOIN FETCH p.cityByCity LEFT JOIN FETCH p.userByUser ORDER BY p.id", Person.class);

if(startPosition != null){
findAllQuery.setFirstResult(startPosition);
]
if(maxResult!=null){
findAllQuery.setMaxResults(maxResult);
}
return findAllQuery.getResultList

}

我有个人,城市和用户对象。

当我尝试带人说50k时,就可以了。但是,如果我尝试使用15万个人,它只是没有完成,并给出EJBTransactionRolledBackException:事务回滚。我以0和5作为最大结果给出开始位置,因此它应该带来前5个人,但不会结束并给出例外。

我认为TypedQuery会带来所有结果,然后尝试获取前5个是问题的原因。但是另一方面,我不确定TypedQuery的工作原理。如果它能正常工作,它确实需要更新:D

0 个答案:

没有答案
相关问题