Vous pouvez utiliser la requête que vous avez dit ci-dessus avec EntityManager's createNativeQuery fonction voir exemple classe ci-dessous :
package facades;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
@Stateless
@LocalBean
public class CustomFacade {
@PersistenceContext(unitName = "TestJPQLPU")
private EntityManager em;
public CustomFacade(){}
/**
* Gets the count of all records in tables foo and bar.
* @return number of records as Long.
*/
public Long getCountOfObjects(){
Query countQuery = em.createNativeQuery("SELECT((SELECT COUNT(*) FROM Foo) + (SELECT COUNT(*) FROM Bar))");
Long count = (Long) countQuery.getSingleResult();
return count;
}
}