您应该使用HQL参数而不是串联。
举个例子:
Map<String, Object> parameterNameAndValues = new HashMap<String, Object>();Date startDate;Date endDate;// Assign values to startDate and endDateparameterNameAndValues.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();这将绑定日期参数,并且hibernate将为您进行必要的转换,以避免完整性检查和错误。请记住,即使MySQL以这种格式保存Date对象,其他数据库也可能不会保存,它将破坏Hibernate帮助。



