Search

Hibernate Many-To-One Mapping Example part -2

  Now create the hibernate configuration file and add all the mapping files.

01.<?xml version="1.0" encoding="UTF-8"?>
02.<!DOCTYPE hibernate-configuration PUBLIC
03."-//Hibernate/Hibernate Configuration DTD 3.0//EN"
05.<hibernate-configuration>
06.<session-factory>
07.<property name="hibernate.connection.driver_class"> org.hsqldb.jdbcDriver </property>
08.<property name="hibernate.connection.url"> jdbc:hsqldb:hsql://localhost<;/property>
09.<property name="hibernate.connection.username">sa</property>
10.<property name="connection.password"></property>
11.<property name="connection.pool_size">1</property>
12.<property name="hibernate.dialect"> org.hibernate.dialect.HSQLDialect </property>
13.<property name="show_sql">true</property>
14.<property name="hbm2ddl.auto">create-drop</property>
15.<mapping resource="com/vaannila/student/Student.hbm.xml"/>
16.<mapping resource="com/vaannila/student/Address.hbm.xml"/>
17.</session-factory>
18.</hibernate-configuration>
After creating the configuration file, generate java class files using Hibernate Tools.(To generate code using Hibernate Tools refer this example )
The following classes will be generated.

package com.vaannila.student;
02. 
03.// Generated Sep 3, 2009 7:20:37 PM by Hibernate Tools 3.2.4.GA
04. 
05./**
06.* This class contains student details.
07.*/
08.public class Student implements java.io.Serializable {
09. 
10.private long studentId;
11.private String studentName;
12.private Address studentAddress;
13. 
14.public Student() {
15.}
16. 
17.public Student(String studentName, Address studentAddress) {
18.this.studentName = studentName;
19.this.studentAddress = studentAddress;
20.}
21. 
22.public long getStudentId() {
23.return this.studentId;
24.}
25. 
26.public void setStudentId(long studentId) {
27.this.studentId = studentId;
28.}
29. 
30.public String getStudentName() {
31.return this.studentName;
32.}
33. 
34.public void setStudentName(String studentName) {
35.this.studentName = studentName;
36.}
37. 
38.public Address getStudentAddress() {
39.return this.studentAddress;
40.}
41. 
42.public void setStudentAddress(Address studentAddress) {
43.this.studentAddress = studentAddress;
44.}
45. 
46.}

01.package com.vaannila.student;
02. 
03.// Generated Sep 3, 2009 7:20:37 PM by Hibernate Tools 3.2.4.GA
04. 
05./**
06.* This class contains the student's address
07.*          details.
08.*/
09.public class Address implements java.io.Serializable {
10. 
11.private long addressId;
12.private String street;
13.private String city;
14.private String state;
15.private String zipcode;
16. 
17.public Address() {
18.}
19. 
20.public Address(String street, String city, String state, String zipcode) {
21.this.street = street;
22.this.city = city;
23.this.state = state;
24.this.zipcode = zipcode;
25.}
26. 
27.public long getAddressId() {
28.return this.addressId;
29.}
30. 
31.public void setAddressId(long addressId) {
32.this.addressId = addressId;
33.}
34. 
35.public String getStreet() {
36.return this.street;
37.}
38. 
39.public void setStreet(String street) {
40.this.street = street;
41.}
42. 
43.public String getCity() {
44.return this.city;
45.}
46. 
47.public void setCity(String city) {
48.this.city = city;
49.}
50. 
51.public String getState() {
52.return this.state;
53.}
54. 
55.public void setState(String state) {
56.this.state = state;
57.}
58. 
59.public String getZipcode() {
60.return this.zipcode;
61.}
62. 
63.public void setZipcode(String zipcode) {
64.this.zipcode = zipcode;
65.}
66. 
67.}

01.package com.vaannila.student;
02. 
03.import org.hibernate.HibernateException;
04.import org.hibernate.Session;
05.import org.hibernate.Transaction;
06. 
07.import com.vaannila.util.HibernateUtil;
08. 
09.public class Main {
10. 
11.public static void main(String[] args) {
12.Session session = HibernateUtil.getSessionFactory().openSession();
13.Transaction transaction = null;
14.try {
15.transaction = session.beginTransaction();
16.Address address = new Address("OMR Road""Chennai""TN","600097");
17.//By using cascade=all option the address need not be saved explicitly when the student object is persisted the address will be automatically saved.
18.//session.save(address);
19.Student student1 = new Student("Eswar", address);
20.Student student2 = new Student("Joe", address);
21.session.save(student1);
22.session.save(student2);
23.transaction.commit();
24.catch (HibernateException e) {
25.transaction.rollback();
26.e.printStackTrace();
27.finally {
28.session.close();
29.}
30. 
31.}
32. 
33.}
On executing the Main class you will see the following output.
The Student table has two records.


No comments:

Post a Comment