hibernate entity

In this section, you will learn about entity in Hibernate.

hibernate entity

hibernate entity

In this section, you will learn about entity in Hibernate.

What is entity ?

In a persistent storage mechanism, an entity is a business object. Example of entities/business objects are employee, department etc. In simplified words, a relational database is known as persistent storage mechanism. Each entity has a associated table in a rational database, each instance of the entity represents a row in this table.

Rules of writing entity class :

Since entity class is an annotated  POJO(Plain old java object), during writing the following points must be keep in mind :

  • must contain constructor.

  • should have getter setter for each field.

  • should not have static or final fields.

EXAMPLE

In the below example, you will learn about how you can implement entity in hibernate :

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 Java 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;

@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: JPASetParameterNamedParameter.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;


public class JPASetParameterNamedParameter {


	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 > :roll");
	
	query.setParameter("roll", 100);
	
	List results = query.getResultList();
	
	if(results.size()!=0){
	
	Iterator stIterator=results.iterator();
	
	while(stIterator.hasNext()){
	
	Student st=(Student)stIterator.next();
	
	System.out.print("sname:"+st.getSname());
	
	System.out.print(" sroll:"+st.getSroll());
	
	System.out.print(" scourse:"+st.getScourse());
	
	System.out.println();
	
	}
	
	}
	
	else{
	
	System.out.println("Record not found.");
	
	}
	
	entr.commit();
	
	}
	
	finally{
	
	em.close();
	
	}
	
	}

}

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>?

sname:Arindam sroll:101 scourse:MCA

sname:Ajay sroll:102 scourse:B.Tech.

sname:Rakesh sroll:103 scourse:B.Tech

sname:Vikas sroll:104 scourse:BCA