Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak porównać daty za pomocą klauzuli między klauzulą ​​w hibernacji?

Powinieneś używać parametrów HQL zamiast łączenia.

Weźmy ten przykład:

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

Spowoduje to powiązanie parametrów daty, a hibernacja dokona niezbędnych konwersji, aby uniknąć sprawdzania poprawności i błędów. Pamiętaj, że nawet jeśli MySQL zapisuje obiekty Date w tym formacie, inne bazy danych mogą tego nie robić i podważy to pomoc Hibernate.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL MariaDB – zapytanie przy użyciu tabeli temp

  2. while ($row =mysql_fetch_array($result)) - ile pętli jest wykonywanych?

  3. jak sformatować pole daty w MYSQL

  4. Jak włączyć automatyczne ponowne łączenie klienta MySQL z MySQLdb?

  5. Wiersz MySQL na liczbę kolumn i sumę