Mimo 3 godzin szukania i wyszukiwania w interfejsie API nie mogę znaleźć żadnego odniesienia do tego, czy możliwe jest korzystanie z funkcji bazy danych w zapytaniu o kryterium hibernacji. Aby być konkretnym:Używanie funkcji bazy danych do transformacji kolumn w kryteriach hibernacji
Chciałbym uzyskać dostęp do części daty datetime w bazie danych postgres i grupy przez to. Wyobrażam sobie zapytanie będzie wyglądać następująco:
session.createCriteria(Exam.class)
.setProjection(Projections.projectionList()
.add(Projections.property("DATE(beginExam)").as("beginDate"))
.add(Projections.groupProperty("beginDate")))
.list();
To nie działa dając mi „nie można rozwiązać właściwość: data (beginExam) ...” wyjątek. Wygląda na to, że jest to bardzo prosta rzecz i muszę czegoś nie zauważyć. Biorąc pod uwagę, że jestem również dynamicznie budujący ograniczenia (zostawiłem to w tym przykładzie) wydaje się, że kryterium jest elementem hibernacji, którego można użyć do tego celu, ale jestem otwarty na wszelkie sugestie w tym miejscu, które niedługo rozwiną cały problem. budując własną grupę przez.
Dzięki
Zrobiłem dokładnie. Wśród wielu metod dla eq i pomiędzy nie ma metody przekształcania wartości kolumny na datę, aby można było ją następnie porównać lub umieścić w groupProperty. – user996088
@ user996088: Jaki jest typ danych beginExam? możesz użyć _any_ SQL w Projections.sqlProjection, więc nie rozumiem, dlaczego nie można przekonwertować go na datę. – tscho
Moja wina. W moim gniewie nie zauważyłem, że gkamal wskazał mi właściwy kierunek z niewłaściwym łącznikiem. – user996088