A veces necesitamos implementar o personalizar nuestras operaciones con JPA. En este caso deseamos contar por varios atributos entre ellos un campo que usamos con una relación @ManyToOne.
En la clase Facade agregamos el método.
public int countBancoIdAndActivo(Banco BANCOID, String ACTIVO) {
List<Cajero> list = new ArrayList<>();
try {
Query query = em.createQuery("SELECT COUNT(c) FROM Cajero c WHERE c.BANCOID = :BANCOID AND c.ACTIVO = :ACTIVO ");
query.setParameter("BANCOID", BANCOID).setParameter("ACTIVO", ACTIVO).getResultList();
return ((Long) query.getSingleResult()).intValue();
} catch (Exception ex) {
JsfUtil.errorMessage(JsfUtil.nameOfMethod() + " " + ex.getLocalizedMessage());
}
return 0;
}
Implementamos el método en el repository
public int countBancoIdAndActivo(Banco BANCOID, String ACTIVO);
Hacemos la implementación, pasando un objeto de tipo Banco