Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да сравнявам дати, използвайки между клауза в хибернация

Трябва да използвате HQL параметри вместо конкатенация.

Вземете този пример:

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();

Това ще обвърже параметрите на датата и хибернацията ще направи необходимите преобразувания, за да избегнете проверки за здравина и грешки. Не забравяйте, че дори ако MySQL записва обекти Date в този формат, други бази данни може да не са и това ще подкопае помощта за хибернация.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Променете таблицата или нулирайте автоматичното увеличение с помощта на CDbMigration

  2. Как да напиша заявка за присъединяване към MySQL

  3. недефинирана грешка в индекса от php arrya

  4. Структура на таблицата за геопространствени данни

  5. WAMP Няма достъп в локална мрежа 403 Забранено