Bạn nên sử dụng các tham số HQL thay vì nối.
Lấy ví dụ sau:
Map<String, Object> parameterNameAndValues = new HashMap<String, Object>();
Date startDate;
Date endDate;
// Assign values to startDate and endDate
parameterNameAndValues.put("startDate", startDate);
parameterNameAndValues.put("endDate", endDate);
String hqlQuery = "FROM EntityName WHERE fechaInicio BETWEEN :startDate AND :endDate";
Query query = this.sessionFactory.getCurrentSession().createQuery(hqlQuery);
for (Entry<String, Object> e : parameterNameAndValues.entrySet()) {
query.setParameter(e.getKey(), e.getValue());
}
return query.list();
Điều này sẽ ràng buộc các tham số ngày và ngủ đông sẽ thực hiện các chuyển đổi cần thiết cho bạn để tránh kiểm tra tỉnh táo và lỗi. Hãy nhớ rằng ngay cả khi MySQL lưu các đối tượng Ngày ở định dạng đó thì các cơ sở dữ liệu khác có thể không và nó sẽ làm suy yếu sự trợ giúp của Hibernate.