sql >> データベース >  >> RDS >> Mysql

hibernateのbetween句を使用して日付を比較する方法

    連結する代わりに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オブジェクトを保存したとしても、他のデータベースは保存しない可能性があり、Hibernateのヘルプを損なうことに注意してください。



    1. mysql-特殊文字%(パーセント)および_(アンダースコア)を使用したクエリ検索の処理方法

    2. 削除されたレコードを取得するSQLクエリ

    3. mysqlで文字列の一部を削除する方法は?

    4. データベースに多くの言語を話せるようにするにはどうすればよいですか?