Hibernate Query setParameter()

This section describe use of query.setParameter() in HQL with example.

Hibernate Query setParameter()

Hibernate Query setParameter()

This section describe use of query.setParameter() in HQL with example.

Hibernate query.setParameter():

  setParameter() is used for setting value of Named query parameter. It works with Query instance, which you can get by Session.createQuery().
There is many way to setParameter() according to developer need. Here we are mentioning-

setParameter(int arg0,Object arg1):Query query- It takes two arguments,
arg0 - int type, refer parameter in the query string ,
arg1 - holds non null parameter value.

setParameter(String arg0,Object arg1):Query query-It takes two arguments,
arg0 - String type, refer parameter in the query string
arg1 - contains non null parameter value.

setParameter(int arg0,Object arg1,Type arg2):Query query -It takes three arguments,
arg0 - int type, refer parameter in the query string ,
arg1 - holds non null parameter value ,
arg2 - for the hibernate type.

setParameter(String arg0,Object arg1,Type arg2):Query query-It takes two arguments,
arg0 - String type, refer parameter in the query string
arg1 - contains non null parameter value.
arg2 - for the hibernate type.

setParameters(Object[] arg0,Type[] arg1):Query query-It takes two arguments, both is used for binding value and type to the positional parameters.

Example : Student is our table and we are selecting the student name whose roll number is 5.

package net.roseindia.main;

import java.util.Iterator;
import java.util.List;

import net.roseindia.table.Student;
import net.roseindia.util.HibernateUtil;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class MainClass {

public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();

int roll = 5;
try {
Transaction transaction = session.beginTransaction();
String hql = "FROM Student stud WHERE stud.roll=:roll";
Query query = session.createQuery(hql);
query.setParameter("roll", roll);
query.setParameter(roll, args);
List list = query.list();
transaction.commit();
Iterator iterator = list.iterator();
Student student = (Student) iterator.next();
System.out.println(student.getName());

session.flush();
} catch (HibernateException e) {

e.printStackTrace();
} finally {
session.close();
}
}
}

Output:

Hibernate: select student0_.roll_no as roll1_0_, student0_.course as course0_, student0_.name as name0_ from student student0_ where student0_.roll_no=?
Charli

Click here to download complete source code