Returning result of count native query using EntityManager in Java?
33,103
Solution 1
You can also use Number
and call intValue()
:
Query query = entityManager.createNativeQuery("SELECT COUNT(*) FROM DOG WHERE ID =:id");
query.setParameter("id", 1);
int count = ((Number) query.getSingleResult()).intValue();
Solution 2
Make sense to use Query#getSingleResult method:
Query query = entityManager.createNativeQuery("SELECT COUNT(*) FROM DOG WHERE ID =:id");
query.setParameter("id", 1);
int count = ((BigInteger) query.getSingleResult()).intValue();
Solution 3
Simply try this:
public int returnCountOfDogTable(String id) {
//...
List<BigDecimal> resultList = query.getResultList();
BigDecimal result = resultList.get(0);
return result.toIntValue();
}
Related videos on Youtube
Author by
java123999
Updated on January 20, 2022Comments
-
java123999 over 2 years
I have the following
SQL Query :
SELECT COUNT(*) FROM DOG where ID = 'SampleId';
I am trying to write this in
java
:public int returnCountOfDogTable(String id){ String sql= "SELECT COUNT(*) FROM DOG WHERE ID =:id"; Query query = persistence.entityManager().createNativeQuery(sql); query.setParameter("id", id); List<Integer> resultList = query.getResultList(); int result = resultList.get(0); return result; }
However I get this exception:
java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer
How can I solve this?
-
java123999 over 7 yearsok, and how to then change big decimal back to int in return value?
-
Shark over 7 yearsperhaps
result.toIntValue()
?