有没有一种方法可以获取带有结果集的JPA命名查询的计数大小?

有没有一种方法可以获取带有结果集的JPA命名查询的计数大小?,第1张

有没有一种方法可以获取带有结果集的JPA命名查询的计数大小?

因此,我最终使用的解决方案是创建两个@NamedQuerys,一个用于结果集,一个用于计数,但是使用静态字符串捕获基本查询以维护DRY并确保两个查询保持一致。因此,对于上面的内容,我会有类似以下内容:

@NamedQuery(name = "getAccounts", query = "SELECt a" + accountQuery)@NamedQuery(name = "getAccounts.count", query = "SELECT COUNT(a)" + accountQuery).static final String accountQuery = " FROM Account";.  Query q = em.createNamedQuery("getAccounts");  List r = q.setFirstResult(s).setMaxResults(m).getResultList();  int count = ((Long)em.createNamedQuery("getAccounts.count").getSingleResult()).intValue();

显然,在此示例中,查询主体是微不足道的,这是过分的。但是对于更复杂的查询,您最终只能对查询主体进行定义,并且可以确保两个查询保持同步。您还可以获得查询被预编译的优势,并且至少使用Eclipselink可以在启动时(而不是在调用查询时)进行验证。

通过在两个查询之间进行一致的命名,可以仅基于查询的基本名称来包装代码主体以运行两个集合。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5565395.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存