Search code examples
javamysqlhibernatejpajpql

JPA Native query get a Single Object


How can i get a single object by using JPA Native query. I did some researches but all give an answer is use "getSingleResult", however it didn't return what i want to get. For example, what should i do if i want to get a count of table in my database and fetch it into a Integer.

This code below shows how i get this by using Sessison hibernate:

int check = Integer.parseInt((String) sessionF.createSQLQuery("select to_char(count(*)) as count from user_tables where table_name upper('TEST')").uniqueResult()); 

And what i hope to be fine in JPA:

int check = Integer.parseInt((String) getEntityManager().createNativeQuery("select to_char(count(*)) as count from user_tables where table_name upper('TEST')").getSingleResult()); 

Obviously, the code doesn't return what i want. Therefore, please help me to cope with this problem. Thank you !


Solution

  • With JPA you need to do like following

    int num = ((Number)this.entityManager.createNativeQuery("select count(*) from your_table_name")
                    .getSingleResult()).intValue();
    

    edited :

     String name = this.entityManager.createNativeQuery("select t.name from your_table_name t limit 1").getSingleResult().toString();
    

    you will got count with num object

    Hope its will help to you.