Digamos que tengo un elemento de clase persistente con un campo de cantidad y un campo de precio. ¿Hay alguna manera de crear un Criterio que calcule la suma del precio de la cantidad *?Expresiones en los criterios de hibernación
6
A
Respuesta
9
Creo que también puede usar una proyección de SQL. Debe ser algo así como:
session.createCriteria(Item.class)
.createAlias("item", "i")
.setProjection(Projections.projectionList()
.add(Projections.groupProperty("i.id"))
.add(Projections.groupProperty("i.price"))
.add(Projections.groupProperty("i.quantity"))
.add(Projections.sqlProjection(
"price * quantity as total",
new String[] { "total" },
new Type[] { Hibernate.DOUBLE }
)
)
);
Ori
1
No es exactamente lo que pediste, pero puedes usar "propiedades derivadas" para obtener algo bastante similar.
Por ejemplo, puede asignar una propiedad TotalPrice a una expresión SQL:
<property name="totalPrice" formula="quantity * price" type="big_decimal"/>
La fórmula SQL "cantidad * precio" se evalúa cada vez que la entidad se recupera de la base de datos.
Ori
La hibernación docs contienen más información sobre esto.
1
Es (probablemente) imposible hacerlo con Criteria. Pero HQL puede ser útil para esto.
SELECT ent.quantity*ent.price from EntityName as ent WHERE ent.id = ?
Cuestiones relacionadas
- 1. recuento (*) en criterios de hibernación?
- 2. Criterios de Hibernación en los valores de recopilación
- 3. Criterios de hibernación con restricciones en niños
- 4. Uso de suma() en criterios de hibernación
- 5. Criterios de Hibernación ¿Mecanismo de límite?
- 6. cuándo utilizar criterios separados en hibernación?
- 7. criterios de hibernación api join table problema
- 8. ¿Cómo se combinan los criterios "O" al usar una consulta de criterios con hibernación?
- 9. Criterios de Hibernación: Realizar UNIR en Subconsultar/DetachedCriteria
- 10. Al utilizar los criterios de hibernación, ¿hay alguna manera de escapar de los caracteres especiales?
- 11. ¿Puedo llamar a un procedimiento almacenado con criterios de hibernación?
- 12. Cómo ordeno la lista con criterios en hibernación
- 13. Criterios de hibernación n + 1 problema con maxresults
- 14. ¿Cómo se pide un OneToMany tabla de unión en los criterios de hibernación
- 15. filas de recuento de hibernación con algunos criterios
- 16. Criterios de Hibernación para elementos dentro de un Conjunto
- 17. Criterios de Hibernación/Consulta sobre las propiedades del objeto
- 18. Trabajar con múltiples criterios de hibernación con lógica y
- 19. cómo acelerar los criterios de hibernación 'consultas ilike' con la base de datos Oracle
- 20. generación de la secuencia con expresiones regulares como criterios
- 21. Cómo agregar Distinct en los criterios de Hibernate
- 22. Uso de funciones de base de datos para transformar columnas en criterios de hibernación
- 23. ¿Cómo usar los criterios de hibernación para devolver solo un elemento de un objeto en lugar de todo el objeto?
- 24. Criterios de Hibernación: Izquierda Exterior Unir con restricciones en ambas tablas
- 25. Ignorar los criterios WHERE particulares
- 26. agregar un grupo, a una hibernación Criterios en consultas sin proyección
- 27. Sintaxis OQL para contar objetos que coinciden con los criterios
- 28. Cómo comparar las fechas en hibernación
- 29. Persistir los campos de recopilación con hibernación
- 30. ¿Cómo funcionan los "criterios" de Mongoid?
¿Puede usted por favor decir donde es la función que crea el total de? Esto solo crea el producto. – Victor