Asignación del resultado de la consulta agregada al objeto de hibernación

¿Es posible mapear el resultado de una consulta agregada a un campo en un objeto de dominio respaldado por hibernación?

Por ejemplo: si tengo un objeto Car que se parece a lo siguiente:

@Entity
public class Car {
    @Id 
    private int id;
    @Column 
    private String carName;
    private int carCount;
    ---Getters/Setters---
}

Me gustaría que el campo / propiedad carCount fuera el recuento total de todos los autos en mi tienda de persistencia, ¿es esto posible?

He visto la documentación de Hibernate, puedo ejecutar la consulta, pero no veo dónde puedo establecer ese valor en "carCount"

Gracias.

preguntado el 08 de enero de 11 a las 16:01

Solo un comentario: carCount es no es una propiedad para una instancia específica. Es una propiedad relacionada con la clase Coche. Por lo tanto, es más adecuado para ser una propiedad "estática". Si está usando el patrón ActiveRecord, es bastante sencillo, pero si está usando algún patrón DAO con DTO "tontos", entonces mantendrá este carCount fuera de su DTO e implementará un método en su DAO, como "int getCarCount ( ) ". -

Sí, estoy usando el patrón DAO. Esperaba evitar hacer dos llamadas a mi DAO, pero supongo que tendré que hacerlo. A menos que, por supuesto, quiera usar la anotación @Formula proporcionada por Hibernate; pero luego estoy realmente atado a Hibernate -

1 Respuestas

Puedes hacerlo con fórmula. Algo como,

@Entity
public class Car {
    @Id 
    private int id;
    @Column 
    private String carName;

    @Formula("select count(*) from Car c where c.id = id")
    private int carCount;
}

Además, hay algunos ejemplos Aquí.

Respondido el 08 de enero de 11 a las 20:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.