Contador @ManyToOne

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

//  IInteger count = cajeroRepository.countBancoIdAndActivo(banco, "SI");

Last updated

Was this helpful?