我需要从表中检索单行,我很感兴趣哪种方法更好。
一方面,getSingleResult用于检索单个结果,但是会引发异常。此方法在与getResultList相关的性能上是否具有优势

query.setFirstResult(0);
query.setMaxResults(1);

最佳答案

如果有多行,则getSingleResult引发NonUniqueResultException。它设计用于在真正存在单个结果时检索单个结果。

您所做的方式很好,并且JPA可以正确处理此问题。同时,您无法以任何方式将其与getSingleResult进行比较,因为它不起作用。

但是,根据您正在处理的代码,如果要满足所有要求,最好对查询进行细化以返回单个结果,这总会更好-然后,您可以调用getSingleResult

09-04 04:10