Hibernateクエリリクエストで変数を使用する方法


  1. 名前付きパラメータを使用する方法:

Hibernateでは、クエリに名前付きパラメータを使用することができます。以下はその例です。

String hql = "FROM Employee WHERE age > :age";
Query query = session.createQuery(hql);
query.setParameter("age", 25);
List<Employee> employees = query.list();

上記の例では、:age が名前付きパラメータであり、25がパラメータの値です。クエリの実行前に setParameter メソッドを使用してパラメータの値を設定します。

  1. 位置パラメータを使用する方法:

Hibernateでは、クエリに位置パラメータを使用することもできます。以下はその例です。

String hql = "FROM Employee WHERE age > ?";
Query query = session.createQuery(hql);
query.setParameter(0, 25);
List<Employee> employees = query.list();

上記の例では、? が位置パラメータであり、25がパラメータの値です。setParameter メソッドの第一引数にパラメータの位置(0から始まるインデックス)を指定します。

  1. ネイティブSQLを使用する方法:

Hibernateでは、ネイティブSQLを使用してクエリを実行することもできます。以下はその例です。

String sql = "SELECT * FROM employees WHERE age > :age";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("age", 25);
query.addEntity(Employee.class);
List<Employee> employees = query.list();

上記の例では、ネイティブSQLを実行するために createSQLQuery メソッドを使用しています。名前付きパラメータを使用する場合も、setParameter メソッドを使用してパラメータの値を設定します。