Link to home
Create AccountLog in
Avatar of gudii9
gudii9Flag for United States of America

asked on

Hibernate HQL pagination example issues

Hi,

I am runing below hibernate HQL pagination example.

hibernate config xml looks as below

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
  <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
  <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/hibernatedb</property>
  <property name="hibernate.connection.username">postgres</property>
  <property name="hibernate.connection.password">root</property>
  <property name="hibersnate.connection.pool_size">10</property>
  <property name="show_sql">true</property>
  <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
  <property name="hibernate.hbm2ddl.auto">update</property> 
  <mapping class="org.gp.gpr.dto.UserDetails"/>  
   <mapping class="org.gp.gpr.dto.Vehicle"/> 
   <mapping class="org.gp.gpr.dto.TwoWheeler"/> 
   <mapping class="org.gp.gpr.dto.FourWheeler"/> 
   </session-factory>
</hibernate-configuration>

UserDetails.java looks as below

package org.gp.gpr.dto;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.Lob;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.hibernate.annotations.CollectionId;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Type;

//import org.hibernate.annotations.Entity;

@Entity
@org.hibernate.annotations.Entity(selectBeforeUpdate=true)
public class UserDetails {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private int userId;
private String userName;

public int getUserId() {
	return userId;
}
public void setUserId(int userId) {
	this.userId = userId;
}

public String getUserName() {
	return userName+"from get";
}


public void setUserName(String userName) {
	this.userName = userName;
}




}



HibernateTestHQL java client file looks as below

package org.gp.gpr.hibernate;

import java.util.Date;
import java.util.List;

import org.gp.gpr.dto.Address;
import org.gp.gpr.dto.FourWheeler;
import org.gp.gpr.dto.TwoWheeler;
import org.gp.gpr.dto.UserDetails;
import org.gp.gpr.dto.Vehicle;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateTestHQL {

	public static void main(String[] args){
		SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
		Session session=sessionFactory.openSession();
		session.beginTransaction();
		Query query=session.createQuery("from UserDetails");
		//Query query=session.createQuery("from UserDetails where userid>0");
	//	List user=query.list();
		query.setFirstResult(5);
		query.setMaxResults(4);
			List<UserDetails> user=(List<UserDetails>)query.list();
		session.getTransaction().commit();
		session.close();
		System.out.println("size of list"+user.size());
	
		for(UserDetails u: user)
			System.out.println(u.getUserName());
	}
}

Open in new window


My question is when I ran the client java application I got output as below


Hibernate: select userdetail0_.userId as userId0_, userdetail0_.userName as userName0_ from UserDetails userdetail0_ limit ? offset ?
size of list4
User5from get
User6from get
User7from get
User8from get



I expected to see output instead as below

Hibernate: select userdetail0_.userId as userId0_, userdetail0_.userName as userName0_ from UserDetails userdetail0_ limit ? offset ?
size of list4
User4from get
User5from get
User6from get
User7from get



since i asked from 5 as below

      query.setFirstResult(5);
            query.setMaxResults(4);


Please advise. Any ideas, resources, sample code highly appreciated. thanks in advance
HQL1.jpg
HQL2.jpg
ASKER CERTIFIED SOLUTION
Avatar of chaitu chaitu
chaitu chaitu
Flag of India image

Link to home
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
See answer