Załóżmy, że mam element klasy trwałej z polem ilości i polem cenowym. Czy istnieje sposób na zbudowanie Kryteriów, które obliczają sumę ilości * ceny?Wyrażenia w kryterium hibernacji
6
A
Odpowiedz
9
Myślę, że można również użyć projekcji SQL. To powinno być coś takiego:
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
Nie jest to dokładnie to, o co prosiłeś, ale możesz użyć "właściwości pochodnych", aby uzyskać coś podobnego.
Na przykład, można zmapować właściwość totalPrice do wyrażenia SQL:
<property name="totalPrice" formula="quantity * price" type="big_decimal"/>
Formuła SQL „ilość * cena” jest oceniany za każdym razem, jednostka jest pobierane z bazy danych.
Ori
hibernacji docs zawierać więcej informacji na ten temat.
1
Jest (prawdopodobnie) niemożliwe, aby zrobić to za pomocą kryteriów. Ale może być pomocne dla tego HQL.
SELECT ent.quantity*ent.price from EntityName as ent WHERE ent.id = ?
Powiązane problemy
- 1. count (*) w kryterium hibernacji?
- 2. Kryterium hibernacji wartości kolekcji
- 3. Kryterium hibernacji z klauzulą istnieje
- 4. Kryterium hibernacji zapytanie o wiele kryteriów
- 5. Kryterium kryteriów hibernacji dla tabeli zbierania?
- 6. Kryterium hibernacji api join problem z tabelą
- 7. Kryterium grupy hibernacji według daty bez czasu
- 8. wybierz "wszystkie kolumny" z "grupa według" w zapytaniach kryterium hibernacji
- 9. Kryterium hibernacji Korzystanie z GROUP BY i POWRÓT LISTY ENTITY
- 10. Hibernate kryterium klauzuli 1000 zerwać
- 11. możliwości kryterium
- 12. Zapytanie Kryterium Hibernacji wyświetla tabele w złej kolejności w wygenerowanym SQL
- 13. Jak dodać sprawdzanie hasła za pomocą wyrażenia regularnego w angularjs według określonego kryterium?
- 14. Jak przetestować zapytania Kryterium Hibernacji bez korzystania z żadnej bazy danych?
- 15. pusta kolekcja hibernacji w komponencie
- 16. Pobierz CActiveDataProvider z kryterium w yii
- 17. Jak usunąć kryterium z kryteriów?
- 18. Używanie funkcji bazy danych do transformacji kolumn w kryteriach hibernacji
- 19. Dziedziczenie adnotacji w hibernacji?
- 20. Dialekt w hibernacji
- 21. ColumnTransformer w hibernacji
- 22. Wyodrębnianie kryteriów hibernacji Rok od daty
- 23. Kryterium aliasu programu Resharper i namespace
- 24. Zagnieżdżanie płaskiej listy na podstawie dowolnego kryterium
- 25. Wiosna + hibernacji Autowire SessionFactory w stanie hibernacji DAO
- 26. Kryterium zapytania Solr zwraca tylko 100 wyników
- 27. hibernacji @JoinFormula
- 28. ehcache + hibernacji
- 29. Buforowanie hibernacji?
- 30. hibernacji, aliasy
Czy możesz powiedzieć, gdzie jest funkcja, która tworzy w sumie? To tylko tworzy produkt. – Victor