我正在使用Java持久性API开发一个独立的软件。我需要从数据库中获得单个结果以及多个结果。,我还有几个问题
第一个是
我使用的是query.getResultList((用于检索单个结果和多个结果的方法。我想知道这个方法是检索整个结果集还是检索结果集的某个部分(比如执行限制查询时,例如:*SELECT*FROM some_db
.some_table
limit 100 OFFSET 120;*(。如果没有,是否会严重影响性能?(在这种情况下,我考虑的是一个数据库,它在一些表中包含大约10000条记录(
第二个,
使用query.getResultList((和查询.getSingleResult((
您应该将数据库端和服务器端部分分开。
-
如果您从数据库端到服务器端得到100行,那么对于服务器端执行来说,您的表有多大并不重要
-
所以,我认为您正在尝试理解
query.getResultList()
只使用一行的开销。IMHO,你不应该为此烦恼。 -
根据文档,当结果为0行时,
query.getResultList()
和query.getSingleResult()
之间的差异似乎很小。
query.getSingleResult((
如果根本没有结果,则抛出NoResultException。
UPD
对于Persistance API,尝试使用这种方式来创建查询:
getEntityManager().createQuery(query)
.setFirstResult(offset) // offset
.setMaxResults(limit) // limit
.getResultList();