JPA setMaxResults Example
In this section, you will learn how to use the setMaxResults() method in your JPA application. The setMaxResults function is used to set a limit to restrict the number of objects returned from database.
setMaxResults(int maxResult): This method is used with query instance for setting the maximum number of results to be fetched from database.
To test the setMaxResults with example follow the following steps:
- Database Table: student, create student table.
- Model Class: Student.java, develop the model class.
- Main Class: JPASetMaxResult.java, develop the program to run the application.
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, PRIMARY KEY (`id`) ) |
Then enter few records in student table.
Model Class: Student.java
Here is the code of the model class, which is mapped to student table in the database.
/** * */ 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 * */ @Entity @Table(name="student") public class Student { @Id @GeneratedValue 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; } @Column(name="sroll",nullable=false) 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; } @Column(name="scourse",length=10,nullable=false) 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: JPASetMaxResult.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 JPASetMaxResult { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub EntityManagerFactory emf=Persistence.createEntityManagerFactory("jpa"); EntityManager em=emf.createEntityManager(); try{ EntityTransaction entr=em.getTransaction(); entr.begin(); Query query=em.createQuery("SELECT st FROM Student st WHERE st.sroll > ?1"); query.setParameter(1, 100); query.setMaxResults(3); List stuList=query.getResultList(); Iterator stuIterator=stuList.iterator(); while(stuIterator.hasNext()){ Student st=(Student)stuIterator.next(); System.out.print("sname:"+st.getSname()); System.out.print(" sroll:"+st.getSname()); System.out.print(" scourse:"+st.getSname()); System.out.println(); } entr.commit(); } finally{ em.close(); } } } |
You can run the example from eclipse ide.
Output:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version). 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>? limit ? sname:Vinod sroll:Vinod scourse:Vinod sname:Ravi sroll:Ravi scourse:Ravi sname:Suman sroll:Suman scourse:Suman |