Nonostante 3 ore di ricerca su google e ricerca nell'API non riesco a trovare alcun riferimento a se sia possibile utilizzare le funzioni del database all'interno di una query di criteri di sospensione. Per essere precisi:Utilizzo delle funzioni del database per trasformare le colonne in criteri di ibernazione
Vorrei accedere alla porzione di data del datetime in un database postgres e raggruppare in base a quello. Mi immagino la query sarebbe simile:
session.createCriteria(Exam.class)
.setProjection(Projections.projectionList()
.add(Projections.property("DATE(beginExam)").as("beginDate"))
.add(Projections.groupProperty("beginDate")))
.list();
Questo non funziona avermi dato una "non poteva risolvere proprietà: Data (beginExam) ..." eccezione. Sembra che questa sia una cosa molto semplice da fare, e mi deve mancare qualcosa. Dato che anch'io sto costruendo le restrizioni dinamicamente (l'ho lasciato nell'esempio), sembra che i criteri siano il componente di ibernazione da usare per questo, ma sono aperto a qualsiasi suggerimento a questo punto, a parte il passo verso l'intero problema costruendo il mio gruppo da.
Grazie
ho fatto, a fondo. Tra i molti metodi per eq e tra non esiste un metodo per trasformare il valore della colonna in una data in modo che possa quindi essere confrontato o inserito in un gruppoProperty. – user996088
@ user996088: qual è il tipo di dati di beginExam? puoi usare _any_ SQL in Projections.sqlProjection, quindi non vedo perché non dovresti essere in grado di convertirlo in una data. – tscho
colpa mia. Nella mia angoscia non ho riconosciuto che gkamal mi avesse indicato nella giusta direzione con il link sbagliato. – user996088