我需要从DB中只带一个结果。我怎么能用JPA做到这一点?
Select top 1 * from table
我试过
“从表格t中选择t”
query.setMaxResults(1);
query.getSingleResult();
但没有奏效。还有其他想法吗?
答案 0 :(得分:51)
试试这个
String sql = "SELECT t FROM table t";
Query query = em.createQuery(sql);
query.setFirstResult(firstPosition);
query.setMaxResults(numberOfRecords);
List result = query.getResultList();
应该有效
<强> UPDATE * 强>
您也可以尝试这样
query.setMaxResults(1).getResultList();
答案 1 :(得分:19)
要在TypedQuery上使用getSingleResult,您可以使用
query.setFirstResult(0);
query.setMaxResults(1);
result = query.getSingleResult();
答案 2 :(得分:4)
最简单的方法是使用 @Query with NativeQuery选项,如下所示:
@Query(value="SELECT 1 * FROM table ORDER BY anyField DESC LIMIT 1", nativeQuery = true)
答案 3 :(得分:2)
通过在实体类上指定@NamedNativeQuery
注释或使用EntityManager.createNativeQuery
方法来使用本机SQL查询。您需要使用适当的类指定ResultSet的类型,或使用ResultSet映射。