-2

I have a postgres query that i want to execute with JPA.

Can any one tell me how to right following query in jpa

SELECT  (
        SELECT COUNT(*)
        FROM "RECEIPT" Where "STATUS"='1'
        ) AS count1,
        (
        SELECT COUNT(*)
        FROM   "RECEIPT"  Where "STATUS"='1'
        ) AS count2;

This returns

count1 count2
11      11

In jpa i tried following.

Query query = em.createQuery("SELECT (SELECT count(*)  FROM SMSReceipt Where status='1' ) AS count1,(SELECT count(*)  FROM SMSReceipt Where status='8' ) AS count2 ");

But this is not working

Please suggest me how to do it

Cœur
  • 37,241
  • 25
  • 195
  • 267
kirti
  • 4,499
  • 4
  • 31
  • 60

1 Answers1

1

You need to use createNativeQuery() method to run plain sql

Query query = em.createNativeQuery("SELECT (SELECT count(*)  FROM SMSReceipt Where status='1' ) AS count1,(SELECT count(*)  FROM SMSReceipt Where status='8' ) AS count2 ");

createQuery() is used to run JPQL.

Also Check -JPA's EntityManager createQuery() vs createNamedQuery() vs createNativeQuery()

Community
  • 1
  • 1
singhakash
  • 7,891
  • 6
  • 31
  • 65