Mặc dù 3 giờ googling và tìm kiếm API Tôi không thể tìm thấy bất kỳ tham chiếu đến việc có thể sử dụng chức năng cơ sở dữ liệu trong một truy vấn tiêu chuẩn ngủ đông. Để cụ thể:Sử dụng chức năng cơ sở dữ liệu để chuyển đổi cột trong tiêu chí ngủ đông
Tôi muốn truy cập phần ngày của datetime trong cơ sở dữ liệu và nhóm postgres theo đó. Tôi tưởng tượng truy vấn sẽ trông giống như sau:
session.createCriteria(Exam.class)
.setProjection(Projections.projectionList()
.add(Projections.property("DATE(beginExam)").as("beginDate"))
.add(Projections.groupProperty("beginDate")))
.list();
Điều này không làm việc cho tôi một ngoại lệ "không thể giải quyết thuộc tính: Ngày (beginExam) ...". Có vẻ như đây là một việc rất đơn giản để làm, và tôi phải thiếu cái gì đó. Cho rằng tôi cũng xây dựng các hạn chế động (tôi đã để nó ra trong ví dụ) có vẻ như các tiêu chí là thành phần ngủ đông để sử dụng cho điều này, nhưng tôi mở cho bất kỳ đề xuất nào tại thời điểm này. bằng cách xây dựng nhóm của riêng tôi.
Cảm ơn
tôi đã làm, triệt để. Trong số nhiều phương thức cho eq và giữa không có phương pháp để biến đổi giá trị của cột thành một ngày để sau đó nó có thể được so sánh hoặc đặt trong một groupProperty. – user996088
@ user996088: Loại dữ liệu của beginExam là gì? bạn có thể sử dụng _any_ SQL trong Projections.sqlProjection vì vậy tôi không thấy lý do tại sao bạn không thể chuyển đổi nó thành một ngày. – tscho
Lỗi của tôi. Trong giận dữ của tôi, tôi đã không nhận ra rằng gkamal đã chỉ cho tôi đi đúng hướng với liên kết sai. – user996088