Thursday, January 17, 2013

Hibernate OneToOne Mapping with Annotations

Project View After Completion

Hibernate Environment Setting

Right click over project on Project Explorer and goto properties->Java Build Path->Libraries
Add Required Hibernate jars, JRE system Library, Apache Tomcat server by click on Add Library and Add External Jar ojdbc14.jar by click on Add External Jars.
For Details Read How to set Hibernate Environment
This is pojo class where we are using @OneToOne annotation for one to one mapping between Student and Books class. 
 import javax.persistence.Entity;  
 import javax.persistence.GeneratedValue;  
 import javax.persistence.Id;  
 import javax.persistence.OneToOne;  
 import javax.persistence.Table;  
 public class Student {  
      private int id;  
   private String name;  
   private int rollno;  
   private Books books;  
      public int getId() {  
           return id;  
      public void setId(int id) {  
  = id;  
      public String getName() {  
           return name;  
      public void setName(String name) {  
  = name;  
      public int getRollno() {  
           return rollno;  
      public void setRollno(int rollno) {  
           this.rollno = rollno;  
      public Books getBooks() {  
           return books;  
      public void setBooks(Books books) {  
           this.books = books;  
 import javax.persistence.Entity;  
 import javax.persistence.GeneratedValue;  
 import javax.persistence.Id;  
 public class Books {  
      private int bookid;  
      private String bookname;  
      public int getBookid() {  
           return bookid;  
      public void setBookid(int bookid) {  
           this.bookid = bookid;  
      public String getBookname() {  
           return bookname;  
      public void setBookname(String bookname) {  
           this.bookname = bookname;  
It is working as Persistent class for Hibernate and the same java class we are using to store object of Student and Books class using Hibernate Framework.

 import org.hibernate.Session;  
 import org.hibernate.SessionFactory;  
 import org.hibernate.cfg.Configuration;  
 public class ExeMain {  
      public static void main(String args[]){  
           Student st =new Student();  
        Books bk=new Books();  
        bk.setBookname("Hb with Eclipse");  
        SessionFactory sessionFactory     =new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();  
        Session session=sessionFactory.openSession();  
        session.beginTransaction(); ; ;  

This is a file that contains information about Oracle database(or any other database you want to use) Driver and connection information and mapping class information. 

 <?xml version="1.0" encoding="UTF-8"?>  
 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "">  
   <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>  
   <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>  
   <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>  
   <property name="hibernate.connection.username">hr</property>  
   <property name="hibernate.connection.password">hr</property>  
   <property name="hibernate.show_sql">true</property>  
   <property name="">create</property>  
   <mapping class=""/>  
   <mapping class=""/>  
Download Code Link 1
Download Code Link 2

To Run this Project Right Click inside, select Run As -> Java Application 
In output you can see default column name in MyStudent Table is books_bookid and if you want to override this default column name then you can use @JoinColumn Annotation.

MyStudent Table:
Books Table:


No comments:

Popular Posts