SELECT top 1 JPA

Select top 1 result using JPA

I need to bring from DB only one single result. How can I do that with JPA?

Select top 1 * from table

I tried

"select t from table t"

query.setMaxResults(1); query.getSingleResult();

but didn't work. Any other ideas?

Try like this

String sql = "SELECT t FROM table t"; Query query = em.createQuery(sql); query.setFirstResult(firstPosition); query.setMaxResults(numberOfRecords); List result = query.getResultList();

It should work

UPDATE*

You can also try like this

query.setMaxResults(1).getResultList();

To use getSingleResult on a TypedQuery you can use

query.setFirstResult(0); query.setMaxResults(1); result = query.getSingleResult();

The easiest way is by using @Query with NativeQuery option like below:

@Query(value="SELECT 1 * FROM table ORDER BY anyField DESC LIMIT 1", nativeQuery = true)

Use a native SQL query by specifying a @NamedNativeQuery annotation on the entity class, or by using the EntityManager.createNativeQuery method. You will need to specify the type of the ResultSet using an appropriate class, or use a ResultSet mapping.