Home Jpa Eclipsejpaexamples JPA Positional Parameter


Share on Google+Share on Google+

JPA Positional Parameter

In this section, you will learn about the JPA Positional Parameter and how to use in your JPA application

JPA Positional Parameter


In this section, you will learn about the JPA Positional Parameter and how to use in your JPA application. JPA Queries are convenient to pass the value in parameter. So, We don't have use the same query for different values. To use parameter to add prefix by "?" (question mark) after that staring number. Positional parameter numbered are staring from "1". Positional parameter is using with query.setParameter() method.

Numbered Parameters:

Query query = em.createQuery(
"SELECT st FROM Student st WHERE st.sroll= ?1 AND st.scourse= ?2");
query.setParameter(1, 100);
query.setParameter(2, "MCA");

For developing JPA Named Parameter, you need the following artifacts:

  1. Database Table: student
  2. Model Class: Student.java
  3. Main Class: JPAPositionalParameter.java

Database Table: student

CREATE TABLE `student` ( 
`id` int(11) NOT NULL auto_increment, 
`sname` varchar(100) NOT NULL, 
`sroll` int(11) NOT NULL, 
`scourse` varchar(10) NOT NULL, 

Model Class: Student.java


package roseindia;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

* @author Administrator

public class Student {

private int id;

* @return the id
public int getId() {
return id;

* @param id the id to set
public void setId(int id) {
this.id = id;

@Column(name="sname", length=100,nullable=false)
private String sname;

* @return the sname
public String getSname() {
return sname;

* @param sname the sname to set
public void setSname(String sname) {
this.sname = sname;

private int sroll;

* @return the sroll
public int getSroll() {
return sroll;

* @param sroll the sroll to set
public void setSroll(int sroll) {
this.sroll = sroll;

private String scourse;

* @return the scourse
public String getScourse() {
return scourse;

* @param scourse the scourse to set
public void setScourse(String scourse) {
this.scourse = scourse;


Main Class: JPAPositionalParameter.java

package roseindia;

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

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;

* @author Administrator
public class JPAPositionalParameter {

* @param args
public static void main(String[] args) {
// TODO Auto-generated method stub
EntityManagerFactory emf=Persistence.createEntityManagerFactory("jpa");
EntityManager em=emf.createEntityManager();
EntityTransaction entr=em.getTransaction();
Query query = em.createQuery("SELECT st FROM Student st WHERE st.sroll= ?1 AND st.scourse= ?2");
query.setParameter(1, 101);
query.setParameter(2, "MCA");
List stList=query.getResultList();
Iterator stIterator=stList.iterator();
Student st=(Student)stIterator.next();
System.out.print(" sname:"+st.getSname());
System.out.print(" sroll:"+st.getSroll());
System.out.print(" scourse:"+st.getScourse());


log4j:WARN No appenders could be found for logger

log4j:WARN Please initialize the log4j system properly.

Hibernate: select student0_.id as id0_, student0_.scourse as
scourse0_, student0_.sname as sname0_, student0_.sroll as
sroll0_ from student student0_ where student0_.sroll=?
and student0_.scourse=?

id:1 sname:Vinod sroll:101 scourse:MCA



If you enjoyed this post then why not add us on Google+? Add us to your Circles

Liked it!  Share this Tutorial

Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: September 29, 2006

Related Tutorials

Ask Questions?    Discuss: JPA Positional Parameter  

Post your Comment

Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image