JPA Ordering
In this section, you will learn about the JPA Ordering and how to develop JPA application using ordering. JPQL queries can contains ORDER BY clause with asc or desc keywords, for ordering the data either ascending or descending order. By default it displays the data in ascending order.
JPA Ordering:
Query query=em.createQuery("SELECT st FROM Student st order by st.sname desc"); |
JPA Ordering application, you need the following artifacts:
- Database Table: student
- Model Class: Student.java
- Main Class: JPAOrdering.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, PRIMARY KEY (`id`) ) |
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 * */ @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: JPAOrdering.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 JPAOrdering { /** * @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 order by st.sname desc"); List stList=query.getResultList(); Iterator stIterator=stList.iterator(); while(stIterator.hasNext()){ Student st=(Student)stIterator.next(); System.out.print("id:"+st.getId()); System.out.print(" sname:"+st.getSname()); System.out.print(" sroll:"+st.getSroll()); System.out.print(" scourse:"+st.getScourse()); System.out.println(); } entr.commit(); } finally{ em.close(); } } } |
Output:
log4j:WARN Please initialize the log4j system properly. Hibernate: select student0_.id as id0_, student0_.scourse
as id:1 sname:Vinod sroll:101 scourse:MCA id:3 sname:Suman Saurabh sroll:103 scourse:PHD id:2 sname:Ravi sroll:102 scourse:M.Tech.
|