任意动态查询的JPQL计数

时间:2014-07-02 21:56:37

标签: jpa eclipselink jpql

我正在执行任意的JPQL查询,我需要能够计算分页的总结果。

执行查询的示例代码:

public List<?> executeQuery (String jpqlQuery) { List<?> results = null; Query query = entityManager.createQuery (jpqlQuery); try { results = query.getResultList(); } catch PersistenceException|DatabaseException pe) { // log error } return results; }

注意:我在这里简化了查询以将其归结为基本问题,我们的实际方法采用其他参数,如页码,页面大小和有时查询提示。我们还必须考虑传入的搜索字段并在Query实例上设置为参数。

我想写一个上面的方法,它返回executeQuery方法使用的相同给定jpqlQuery的结果计数。在方法内部,我不知道查询中涉及哪些实体。

我有一个工作版本,涉及unwrap()查询,检索底层SQL并将其包装在计数查询中,但这样做需要一个会话,因此需要一个事务,我正在尝试远离。

非常感谢任何建议。

0 个答案:

没有答案