G l a r i m y TeachCode Series. Hibernate. Illustrated. Krishna Mohan Koyya

Similar documents
HIBERNATE - COMPONENT MAPPINGS

HIBERNATE - MANY-TO-ONE MAPPINGS

HIBERNATE - INTERCEPTORS

HIBERNATE - ONE-TO-ONE MAPPINGS

Step By Step Guideline for Building & Running HelloWorld Hibernate Application

HIBERNATE - SORTEDSET MAPPINGS

Installing MySQL. Hibernate: Setup, Use, and Mapping file. Setup Hibernate in IDE. Starting WAMP server. phpmyadmin web console

Unit 6 Hibernate. List the advantages of hibernate over JDBC

Chapter 3. Harnessing Hibernate

TP 6 des architectures logicielles Séance 6 : Architecture n-tiers avec du JPA avec plusieurs entités. 1 Préparation de l environnement Eclipse

Advanced Web Systems 9- Hibernate annotations, Spring integration, Aspect Oriented Programming. A. Venturini

Tutorial Hibernate Annotaion Simple Book Library

UNIVERSIDAD TÉCNICA DEL NORTE

JPA Entities. Course Multi Tier Business Applications with Java EE. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel. Berner Fachhochschule

EJB 3 Entities. Course Multi Tier Business Applications with Java EE. Prof. Dr. Eric Dubuis Berner Fachhochschule Biel. Berner Fachhochschule

International Journal of Advance Research in Engineering, Science & Technology HIBERNATE FRAMEWORK FOR ENTERPRISE APPLICATION

Introduction to JPA. Fabio Falcinelli

Entities are classes that need to be persisted, usually in a relational database. In this chapter we cover the following topics:

Create a Java project named week9

Selecting a Primary Key - 2

About 1. Chapter 1: Getting started with jpa 2. Remarks 2. Metadata 2. Object-Relational Entity Architecture 2. Versions 2.

Java Persistence API (JPA) Entities

Model Driven Architecture with Java

Produced by. Agile Software Development. Eamonn de Leastar

Xtend Programming Language

Integration Of Struts2 And Hibernate Frameworks

Produced by. Agile Software Development. Eamonn de Leastar

Exploring EJB3 With JBoss Application Server Part 6.2

XSTREAM - QUICK GUIDE XSTREAM - OVERVIEW

Chapter 2. Introduction to Mapping

MYBATIS - ANNOTATIONS

Advanced Programming Methods. Seminar 12

Webservice Inheritance

INTERFACE WHY INTERFACE

Hibernate Quickly by Patrick Peak and Nick Heudecker Chapter 3

Introduction to Session beans. EJB - continued

Advanced Topics on Classes and Objects

Hibernate Interview Questions

Module 8 The Java Persistence API

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)

Introduction to Java Enterprise Edition For Database Application Developer

Java and XML. XML documents consist of Elements. Each element will contains other elements and will have Attributes. For example:

Java EE Architecture, Part Three. Java EE architecture, part three 1(69)

Exploring EJB3 With JBoss Application Server Part 6.3

Lambico. Reference Guide. Lucio Benfante

What data persistence means? We manipulate data (represented as object state) that need to be stored

WEEK 13 EXAMPLES MONDAY SECTION 2. Author class. public class Author { private static int ID=0; private String AuthorName;

= "categories") 1 public class Category implements java.io.serializable { 2 private static final long serialversionuid = 1L;

Java Persistence API (JPA)

Chapter 4. Collections and Associations

EXAMINATION FOR THE DIPLOMA IN INFORMATION TECHNOLOGY; YEAR 2

CMSC 132: Object-Oriented Programming II. Inheritance

PART 1. Eclipse IDE Tutorial. 1. What is Eclipse? Eclipse Java IDE

Distributed Systems Recitation 1. Tamim Jabban

Spring Data JPA, QueryDSL 실습 JPAQueryFactory 이용

JPA. Java persistence API

ibatis, Hibernate, and JPA: Which is right for you?

Painless Persistence. Some guidelines for creating persistent Java applications that work

Dali Java Persistence Tools. User Guide Release for Eclipse

Class Relationships. Lecture 18. Based on Slides of Dr. Norazah Yusof

So, this tutorial is divided into various chapters for the simple presentation and easy understanding.

Distributed Systems Recitation 1. Tamim Jabban

1 st Step. Prepare the class to be persistent:

import org.simpleframework.xml.default; import org.simpleframework.xml.element; import org.simpleframework.xml.root;

Chapter 7. The Annotations Alternative

SDN Community Contribution

Get Back in Control of your SQL

InfiniteGraph Manual 1

Exercise 1: Class Employee: public class Employee { private String firstname; private String lastname; private double monthlysalary;

Kotlin for Android developers

Java Object/Relational Persistence with Hibernate. David Lucek 11 Jan 2005

/smlcodes /smlcodes /smlcodes HIBERNATE TUTORIAL. Small Codes. Programming Simplified. A SmlCodes.Com Small presentation

EJB 3 Entity Relationships

SSE3052: Embedded Systems Practice

Software and Programming 1

ORM and JPA 2.0. Zdeněk Kouba, Petr Křemen

Inheritance (Part 5) Odds and ends

Abstract Classes and Interfaces

Lightweight J2EE Framework

Communication Software Exam 5º Ingeniero de Telecomunicación January 26th Name:

JPA - ENTITY MANAGERS

COMP200 - Object Oriented Programming: Test One Duration - 60 minutes

Thu 10/26/2017. Created RESTful Web Service, JavaDB, Java Persistence API, Glassfish server in NetBeans 8

Java Classes, Inheritance, and Interfaces

find() method, 178 forclass() method, 162 getcurrentsession(), 16 getexecutablecriteria() method, 162 get() method, 17, 177 getreference() method, 178

COMP200 INHERITANCE. OOP using Java, from slides by Shayan Javed

EJB 3 Entity Relationships

Polymorphism. return a.doublevalue() + b.doublevalue();

Assignment 2 Bootstrap

The Object Class. java.lang.object. Important Methods In Object. Mark Allen Weiss Copyright 2000

Programming II (CS300)

The class Object. Lecture CS1122 Summer 2008

Name Return type Argument list. Then the new method is said to override the old one. So, what is the objective of subclass?

Inheritance and Polymorphism

Topics in Enterprise Information Management

Goals for Today. CSE1030 Introduction to Computer Science II. CSE1030 Lecture #9. Review is-a versus has-a. Lecture #9 Inheritance I

Java Persistence for Relational Databases RICHARD SPERKO

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Assignment-1 Final Code. Student.java

WEEK 13 EXAMPLES: POLYMORPHISM

Transcription:

G l a r i m y TeachCode Series Hibernate Illustrated Krishna Mohan Koyya

Basic Mapping Entities with XML Person.java import java.util.date; public class Person { private int id; private String name; private int phone; private Date dob; private boolean indian; private double height; private String profile; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public int getphone() { return phone; public void setphone(int phone) { this.phone = phone; public Date getdob() { return dob; public void setdob(date dob) { this.dob = dob;

public boolean isindian() { return indian; public void setindian(boolean indian) { this.indian = indian; public double getheight() { return height; public void setheight(double height) { this.height = height; public String getprofile() { return profile; public void setprofile(string profile) { this.profile = profile; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + ", dob=" + dob + ", indian=" + indian + ", height=" + height + ", phone=" + phone + ", profile=" + profile + "]"; HBMFirstApp.java import java.util.date; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.configuration; public class HBMFirstApp { public static void main(string[] args) { Person swapnika = new Person(); swapnika.setname("swapnika");

swapnika.setdob(new Date(7, 26, 2008)); swapnika.setindian(true); swapnika.setphone(973142316); swapnika.setheight(5.6); swapnika.setprofile("senior Software Engineering working at Bangalore"); Person krishna = new Person(); krishna.setname("krishna"); krishna.setdob(new Date(7, 22, 1972)); krishna.setindian(true); krishna.setphone(973142316); krishna.setheight(5.8); krishna.setprofile("principle Consultant at Glarimy Technology Services"); SessionFactory factory = new Configuration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = session.begintransaction(); try { session.save(swapnika); session.save(krishna); Person friend = (Person) session.get(person.class.getname(), swapnika.getid()); tx.commit(); System.out.println(friend); catch (Exception e) { e.printstacktrace(); tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property>

name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqldialect</property> <mapping resource="first.hbm.xml" /> </session-factory> </hibernate-configuration> first.hbm.xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.glarimy.hbm"> <class name="person" table="people"> <id name="id" type="int"> <generator class="native" /> </id> name="name" type="string" unique="true" /> name="dob" type="date" column="date_of_birth" /> name="height" type="double" precision="2" scale="2" /> name="indian" type="boolean" /> name="phone" type="int" length="12" not-null="false" /> </class> </hibernate-mapping>

Basic Mapping Entities with JPA Annotations Person.java import java.util.date; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.temporal; import javax.persistence.temporaltype; import javax.persistence.transient; @Entity(name = "People") public class Person { @Id @GeneratedValue private int id; @Column(unique = true) private String name; @Column(nullable = true) private int phone; @Column(name = "Date_of_Birth") @Temporal(TemporalType.DATE) private Date dob; private boolean indian; @Column(precision = 2, scale = 2) private double height; @Transient private String profile; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() {

return name; public void setname(string name) { this.name = name; public int getphone() { return phone; public void setphone(int phone) { this.phone = phone; public Date getdob() { return dob; public void setdob(date dob) { this.dob = dob; public boolean isindian() { return indian; public void setindian(boolean indian) { this.indian = indian; public double getheight() { return height; public void setheight(double height) { this.height = height; public String getprofile() { return profile; public void setprofile(string profile) { this.profile = profile; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + ", dob=" + dob + ", indian=" + indian + ", height=" + height + ", phone="

+ phone + ", profile=" + profile + "]"; HBMSecondApp.java import java.util.date; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMSecondApp { @SuppressWarnings("deprecation") public static void main(string[] args) { Person swapnika = new Person(); swapnika.setname("swapnika"); swapnika.setdob(new Date(7, 26, 2008)); swapnika.setindian(true); swapnika.setphone(973142316); swapnika.setheight(5.6); swapnika.setprofile("senior Software Engineering working at Bangalore"); Person krishna = new Person(); krishna.setname("krishna"); krishna.setdob(new Date(7, 22, 1972)); krishna.setindian(true); krishna.setphone(973142316); krishna.setheight(5.8); krishna.setprofile("principle Consultant at Glarimy Technology Services"); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = session.begintransaction(); try { session.save(swapnika); session.save(krishna); Person friend = (Person) session.get(person.class.getname(), swapnika.getid()); tx.commit(); System.out.println(friend);

catch (Exception e) { e.printstacktrace(); tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqldialect</property> <mapping class="com.glarimy.hbm.person" /> </session-factory> </hibernate-configuration>

CRUD operations through Hibernate Person.java import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; @Entity(name = "People") public class Person { @Id @GeneratedValue private int id; @Column(unique = true) private String name; @Column(nullable = true) private int phone; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public int getphone() { return phone; public void setphone(int phone) { this.phone = phone; @Override public String tostring() {

return "Person [id=" + id + ", name=" + name + ", phone=" + phone + "]"; HBMThirdApp.java import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMThirdApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Person krishna = new Person(); krishna.setname("krishna"); krishna.setphone(973142316); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); krishna.setphone(99455000); tx.commit(); System.out.println(krishna); System.out.println("Check the table, update the phone number and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction();

session.refresh(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); session.evict(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); session.delete(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property>

name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqldialect</property> <mapping class="com.glarimy.hbm.person" /> </session-factory> </hibernate-configuration>

Mapping Compound Keys Name.java import java.io.serializable; public class Name implements Serializable { private static final long serialversionuid = 8245397011060370410L; private String firstname; private String lastname; public Name() { public Name(String firstname, String lastname) { super(); this.firstname = firstname; this.lastname = lastname; public String getfirstname() { return firstname; public void setfirstname(string firstname) { this.firstname = firstname; public String getlastname() { return lastname; public void setlastname(string lastname) { this.lastname = lastname; @Override public int hashcode() { final int prime = 31; int result = 1; result = prime * result + ((firstname == null)? 0 : firstname.hashcode()); result = prime * result + ((lastname == null)? 0 : lastname.hashcode()); return result;

@Override public boolean equals(object obj) { if (this == obj) return true; if (obj == null) return false; if (getclass()!= obj.getclass()) return false; Name other = (Name) obj; if (firstname == null) { if (other.firstname!= null) return false; else if (!firstname.equals(other.firstname)) return false; if (lastname == null) { if (other.lastname!= null) return false; else if (!lastname.equals(other.lastname)) return false; return true; @Override public String tostring() { return "Name [firstname=" + firstname + ", lastname=" + lastname + "]"; Person.java import javax.persistence.column; import javax.persistence.entity; import javax.persistence.id; import javax.persistence.idclass; @Entity(name = "People") @IdClass(value = com.glarimy.hbm.name.class) public class Person { @Id private String firstname; @Id private String lastname; @Column(nullable = true) private int phone;

public String getfirstname() { return firstname; public void setfirstname(string firstname) { this.firstname = firstname; public String getlastname() { return lastname; public void setlastname(string lastname) { this.lastname = lastname; public int getphone() { return phone; public void setphone(int phone) { this.phone = phone; @Override public String tostring() { return "Person [firstname=" + firstname + ", lastname=" + lastname + ", phone=" + phone + "]"; HBMFourthApp.java import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMFourthApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Person krishna = new Person(); krishna.setfirstname("krishna Mohan"); krishna.setlastname("koyya");

krishna.setphone(973142316); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); Person mohan = (Person) session.get(person.class.getname(), new Name("Krishna Mohan", "Koyya")); System.out.println(mohan); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqldialect</property> <mapping class="com.glarimy.hbm.person" /> </session-factory> </hibernate-configuration>

Mapping Compound Keys with Embedded ID Name.java import java.io.serializable; import javax.persistence.embeddable; @Embeddable public class Name implements Serializable { private static final long serialversionuid = 8245397011060370410L; private String firstname; private String lastname; public Name() { public Name(String firstname, String lastname) { super(); this.firstname = firstname; this.lastname = lastname; public String getfirstname() { return firstname; public void setfirstname(string firstname) { this.firstname = firstname; public String getlastname() { return lastname; public void setlastname(string lastname) { this.lastname = lastname; @Override public int hashcode() { final int prime = 31; int result = 1; result = prime * result + ((firstname == null)? 0 : firstname.hashcode()); result = prime * result

+ ((lastname == null)? 0 : lastname.hashcode()); return result; @Override public boolean equals(object obj) { if (this == obj) return true; if (obj == null) return false; if (getclass()!= obj.getclass()) return false; Name other = (Name) obj; if (firstname == null) { if (other.firstname!= null) return false; else if (!firstname.equals(other.firstname)) return false; if (lastname == null) { if (other.lastname!= null) return false; else if (!lastname.equals(other.lastname)) return false; return true; @Override public String tostring() { return "Name [firstname=" + firstname + ", lastname=" + lastname + "]"; Person.java import javax.persistence.column; import javax.persistence.embeddedid; import javax.persistence.entity; @Entity(name = "People") public class Person { @EmbeddedId private Name name; @Column(nullable = true) private int phone; public Name getname() {

return name; public void setname(name name) { this.name = name; public int getphone() { return phone; public void setphone(int phone) { this.phone = phone; @Override public String tostring() { return "Person [name=" + name + ", phone=" + phone + "]"; HBMFifthApp.java import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMFifthApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Person krishna = new Person(); krishna.setname(new Name("Krishna Mohan", "Koyya")); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); tx.commit(); System.out.println(krishna); System.out

.println("check the table and enter any character to continue..."); scanner.nextline(); Person mohan = (Person) session.get(person.class.getname(), new Name("Krishna Mohan", "Koyya")); System.out.println(mohan); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqldialect</property> <mapping class="com.glarimy.hbm.person" /> </session-factory> </hibernate-configuration>

Mapping Components Address.java import javax.persistence.embeddable; @Embeddable public class Address { private String city; private int pin; public String getcity() { return city; public void setcity(string city) { this.city = city; public int getpin() { return pin; public void setpin(int pin) { this.pin = pin; @Override public String tostring() { return "Address [city=" + city + ", pin=" + pin + "]"; Person.java import javax.persistence.column; import javax.persistence.embedded; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; @Entity(name = "People") public class Person { @Id

@GeneratedValue private int id; @Column(unique = true) private String name; @Column(nullable = true) private int phone; @Embedded private Address address; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public int getphone() { return phone; public void setphone(int phone) { this.phone = phone; public Address getaddress() { return address; public void setaddress(address address) { this.address = address; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + ", phone=" + phone + ", address=" + address + "]"; HBMSixthApp.java

import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMSixthApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Address address = new Address(); address.setcity("bangalore"); address.setpin(560016); Person krishna = new Person(); krishna.setname("krishna"); krishna.setaddress(address); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); Person mohan = (Person) session.get(person.class.getname(), krishna.getid()); System.out.println(mohan); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close();

hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqldialect</property> <mapping class="com.glarimy.hbm.person" /> </session-factory> </hibernate-configuration>

Mapping One To One Association Address.java import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; @Entity public class Address { @Id @GeneratedValue private int id; private String city; private int pin; public int getid() { return id; public void setid(int id) { this.id = id; public String getcity() { return city; public void setcity(string city) { this.city = city; public int getpin() { return pin; public void setpin(int pin) { this.pin = pin; @Override public String tostring() { return "Address [city=" + city + ", id=" + id + ", pin=" + pin + "]";

Person.java import javax.persistence.cascadetype; import javax.persistence.column; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.joincolumn; import javax.persistence.onetoone; @Entity(name = "People") public class Person { @Id @GeneratedValue private int id; @Column(unique = true) private String name; @Column(nullable = true) private int phone; @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "address", referencedcolumnname = "id") private Address address; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public int getphone() { return phone; public void setphone(int phone) { this.phone = phone;

public Address getaddress() { return address; public void setaddress(address address) { this.address = address; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + ", phone=" + phone + ", address=" + address + "]"; HBMSeventhApp.java import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMSeventhApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Address address = new Address(); address.setcity("bangalore"); address.setpin(560016); Person krishna = new Person(); krishna.setname("krishna"); krishna.setaddress(address); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); tx.commit();

System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); address.setpin(560034); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.person" /> <mapping class="com.glarimy.hbm.address" /> </session-factory> </hibernate-configuration>

Mapping One To Many Association Address.java import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; @Entity public class Address { @Id @GeneratedValue private int id; private String city; private int pin; public int getid() { return id; public void setid(int id) { this.id = id; public String getcity() { return city; public void setcity(string city) { this.city = city; public int getpin() { return pin; public void setpin(int pin) { this.pin = pin; @Override public String tostring() { return "Address [city=" + city + ", id=" + id + ", pin=" + pin + "]";

Person.java import java.io.serializable; import java.util.list; import javax.persistence.cascadetype; import javax.persistence.entity; import javax.persistence.fetchtype; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.joincolumn; import javax.persistence.onetomany; @Entity(name = "People") public class Person implements Serializable { private static final long serialversionuid = -9061337820645842479L; @Id @GeneratedValue private int id; private String name; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "person", referencedcolumnname = "name") private List<Address> addresses; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public List<Address> getaddresses() { return addresses; public void setaddresses(list<address> addresses) { this.addresses = addresses;

@Override public String tostring() { return "Person [id=" + id + ", name=" + name + ", addresses=" + addresses + "]"; HBMEighthApp.java import java.util.arraylist; import java.util.list; import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMEighthApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Address current = new Address(); current.setcity("bangalore"); current.setpin(560016); Address permanent = new Address(); permanent.setcity("tadepalligudem"); permanent.setpin(534101); List<Address> addresses = new ArrayList<Address>(); addresses.add(current); addresses.add(permanent); Person person = null; Person krishna = new Person(); krishna.setname("krishna"); krishna.setaddresses(addresses); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna);

tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); current.setpin(560034); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); krishna.getaddresses().remove(0); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); krishna.getaddresses().remove(0); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); session.evict(krishna); person = (Person) session.get(person.class.getname(), krishna.getid()); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); System.out.println(person); System.out.println("Check the table and enter any character to continue..."); scanner.nextline();

hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.person" /> <mapping class="com.glarimy.hbm.address" /> </session-factory> </hibernate-configuration>

Mapping Many To Many Association Address.java import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; @Entity public class Address { @Id @GeneratedValue private int id; private String city; private int pin; public int getid() { return id; public void setid(int id) { this.id = id; public String getcity() { return city; public void setcity(string city) { this.city = city; public int getpin() { return pin; public void setpin(int pin) { this.pin = pin; @Override public String tostring() { return "Address [city=" + city + ", id=" + id + ", pin=" + pin + "]";

Person.java import java.io.serializable; import java.util.arraylist; import java.util.list; import javax.persistence.cascadetype; import javax.persistence.entity; import javax.persistence.fetchtype; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.jointable; import javax.persistence.manytomany; @Entity(name = "People") public class Person implements Serializable { private static final long serialversionuid = -9061337820645842479L; @Id @GeneratedValue private int id; private String name; @ManyToMany(cascade=CascadeType.ALL, fetch=fetchtype.lazy) @JoinTable(name="people_addresses") private List<Address> addresses = new ArrayList<Address>(); public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public List<Address> getaddresses() { return addresses; public void setaddresses(list<address> addresses) {

this.addresses = addresses; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + ", addresses=" + addresses + "]"; HBMNinthApp.java import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMNinthApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Address current = new Address(); current.setcity("bangalore"); current.setpin(560016); Address permanent = new Address(); permanent.setcity("tadepalligudem"); permanent.setpin(534101); Address office = new Address(); office.setcity("e-city"); office.setpin(560100); Person krishna = new Person(); krishna.setname("krishna"); krishna.getaddresses().add(current); krishna.getaddresses().add(permanent); Person swapnika = new Person(); swapnika.setname("swapnika"); swapnika.getaddresses().add(current); swapnika.getaddresses().add(permanent); swapnika.getaddresses().add(office); Person person = null;

SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); session.save(swapnika); tx.commit(); System.out.println(swapnika); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); current.setpin(560034); tx.commit(); System.out.println(krishna); System.out.println(swapnika); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); krishna.getaddresses().remove(0); tx.commit(); System.out.println(krishna); System.out.println(swapnika); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); session.evict(krishna); person = (Person) session.get(person.class.getname(), krishna.getid()); catch (Exception e) { e.printstacktrace();

if (tx!= null) tx.rollback(); finally { tx = null; session.close(); System.out.println(person); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.person" /> <mapping class="com.glarimy.hbm.address" /> </session-factory> </hibernate-configuration>

Mapping Bidirectional Associations Address.java import java.util.arraylist; import java.util.list; import javax.persistence.cascadetype; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.manytomany; @Entity public class Address { @Id @GeneratedValue private int id; private String city; private int pin; @ManyToMany(cascade = CascadeType.ALL, mappedby = "addresses") private List<Person> persons = new ArrayList<Person>(); public int getid() { return id; public void setid(int id) { this.id = id; public String getcity() { return city; public void setcity(string city) { this.city = city; public int getpin() { return pin; public void setpin(int pin) { this.pin = pin;

public List<Person> getpersons() { return persons; public void setpersons(list<person> persons) { this.persons = persons; @Override public String tostring() { return "Address [id=" + id + ", city=" + city + ", pin=" + pin + "]"; Person.java import java.io.serializable; import java.util.arraylist; import java.util.list; import javax.persistence.cascadetype; import javax.persistence.entity; import javax.persistence.fetchtype; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.joincolumn; import javax.persistence.jointable; import javax.persistence.manytomany; @Entity(name = "People") public class Person implements Serializable { private static final long serialversionuid = -9061337820645842479L; @Id @GeneratedValue private int id; private String name; @ManyToMany(cascade=CascadeType.ALL, fetch=fetchtype.lazy) @JoinTable( name="people_addresses", joincolumns=@joincolumn(name="person", referencedcolumnname="id"), inversejoincolumns=@joincolumn(name="address", referencedcolumnname="id")) private List<Address> addresses = new ArrayList<Address>(); public int getid() {

return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; public List<Address> getaddresses() { return addresses; public void setaddresses(list<address> addresses) { this.addresses = addresses; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + ", addresses=" + addresses + "]"; HBMTenthApp.java import java.util.scanner; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMTenthApp { public static void main(string[] args) { Scanner scanner = new Scanner(System.in); Address current = new Address(); current.setcity("bangalore"); current.setpin(560016);

Address permanent = new Address(); permanent.setcity("tadepalligudem"); permanent.setpin(534101); Address office = new Address(); office.setcity("e-city"); office.setpin(560100); Person krishna = new Person(); krishna.setname("krishna"); current.getpersons().add(krishna); permanent.getpersons().add(krishna); krishna.getaddresses().add(current); krishna.getaddresses().add(permanent); Person swapnika = new Person(); swapnika.setname("swapnika"); current.getpersons().add(swapnika); permanent.getpersons().add(swapnika); office.getpersons().add(swapnika); swapnika.getaddresses().add(current); swapnika.getaddresses().add(permanent); swapnika.getaddresses().add(office); Person person = null; SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); tx.commit(); System.out.println(krishna); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); session.save(swapnika); tx.commit(); System.out.println(swapnika); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction();

current.setpin(560034); tx.commit(); System.out.println(krishna); System.out.println(swapnika); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); tx = session.begintransaction(); krishna.getaddresses().remove(0); tx.commit(); System.out.println(krishna); System.out.println(swapnika); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); session.evict(krishna); person = (Person) session.get(person.class.getname(), krishna.getid()); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); System.out.println(person); System.out.println("Check the table and enter any character to continue..."); scanner.nextline(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property>

name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.person" /> <mapping class="com.glarimy.hbm.address" /> </session-factory> </hibernate-configuration>

Mapping Inheritance Using Single Table Strategy Person.java import java.io.serializable; import javax.persistence.discriminatorcolumn; import javax.persistence.discriminatortype; import javax.persistence.discriminatorvalue; import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; import javax.persistence.inheritance; import javax.persistence.inheritancetype; @Entity(name = "People") @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name="type", discriminatortype=discriminatortype.integer) @DiscriminatorValue(value="1") public class Person implements Serializable { private static final long serialversionuid = -9061337820645842479L; @Id @GeneratedValue protected int id; protected String name; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + "]";

Employee.java import javax.persistence.discriminatorvalue; import javax.persistence.entity; @Entity @DiscriminatorValue(value = "2") public class Employee extends Person { private static final long serialversionuid = 8028369986900677881L; private double salary; public void setsalary(double salary) { this.salary = salary; @Override public String tostring() { return "Employee [id=" + id + ", name=" + name + ", salary=" + salary + "]"; HBMEleventhApp.java import java.util.list; import org.hibernate.query; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMEleventhApp { @SuppressWarnings("unchecked") public static void main(string[] args) { Person krishna = new Person(); krishna.setname("krishna"); Employee swapnika = new Employee(); swapnika.setname("swapnika"); swapnika.setsalary(30000);

SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna); session.save(swapnika); Query query = session.createquery("from com.glarimy.hbm.person"); List<Person> persons = query.list(); for (Person p : persons) System.out.println(p); tx.commit(); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.person" /> <mapping class="com.glarimy.hbm.employee" /> </session-factory> </hibernate-configuration>

Mapping Inheritance Using Table Per Class Strategy Person.java import java.io.serializable; import javax.persistence.entity; import javax.persistence.id; import javax.persistence.inheritance; import javax.persistence.inheritancetype; @Entity(name = "People") @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) public class Person implements Serializable { private static final long serialversionuid = -9061337820645842479L; @Id protected int id; protected String name; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + "]"; Employee.java import javax.persistence.entity;

@Entity public class Employee extends Person { private static final long serialversionuid = 8028369986900677881L; private double salary; public void setsalary(double salary) { this.salary = salary; @Override public String tostring() { return "Employee [id=" + id + ", name=" + name + ", salary=" + salary + "]"; HBMTwelvthApp.java import java.util.list; import org.hibernate.query; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMTwelvthApp { @SuppressWarnings("unchecked") public static void main(string[] args) { Person krishna = new Person(); krishna.setid(1); krishna.setname("krishna"); Employee swapnika = new Employee(); swapnika.setid(2); swapnika.setname("swapnika"); swapnika.setsalary(30000); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction();

session.save(krishna); session.save(swapnika); Query query = session.createquery("from com.glarimy.hbm.person"); List<Person> persons = query.list(); for (Person p : persons) System.out.println(p); tx.commit(); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.person" /> <mapping class="com.glarimy.hbm.employee" /> </session-factory> </hibernate-configuration>

Mapping Inheritance Using Join Table Strategy Person.java import java.io.serializable; import javax.persistence.entity; import javax.persistence.id; import javax.persistence.inheritance; import javax.persistence.inheritancetype; @Entity(name = "People") @Inheritance(strategy = InheritanceType.JOINED) public class Person implements Serializable { private static final long serialversionuid = -9061337820645842479L; @Id protected int id; protected String name; public int getid() { return id; public void setid(int id) { this.id = id; public String getname() { return name; public void setname(string name) { this.name = name; @Override public String tostring() { return "Person [id=" + id + ", name=" + name + "]"; Employee.java import javax.persistence.entity;

@Entity public class Employee extends Person { private static final long serialversionuid = 8028369986900677881L; private double salary; public void setsalary(double salary) { this.salary = salary; @Override public String tostring() { return "Employee [id=" + id + ", name=" + name + ", salary=" + salary + "]"; HBMThirteenthApp.java import java.util.list; import org.hibernate.query; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMThirteenthApp { @SuppressWarnings("unchecked") public static void main(string[] args) { Person krishna = new Person(); krishna.setid(1); krishna.setname("krishna"); Employee swapnika = new Employee(); swapnika.setid(2); swapnika.setname("swapnika"); swapnika.setsalary(30000); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(krishna);

session.save(swapnika); Query query = session.createquery("from com.glarimy.hbm.person"); List<Person> persons = query.list(); for (Person p : persons) System.out.println(p); tx.commit(); catch (Exception e) { e.printstacktrace(); if (tx!= null) tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.person" /> <mapping class="com.glarimy.hbm.employee" /> </session-factory> </hibernate-configuration>

Mapping a Non-Entity Super Class Person.java import java.io.serializable; import javax.persistence.mappedsuperclass; @MappedSuperclass public class Person implements Serializable { private static final long serialversionuid = -9061337820645842479L; protected String name; public String getname() { return name; public void setname(string name) { this.name = name; @Override public String tostring() { return "Person [name=" + name + "]"; Employee.java import javax.persistence.entity; import javax.persistence.generatedvalue; import javax.persistence.id; @Entity public class Employee extends Person { private static final long serialversionuid = -6198148032756999209L; @Id @GeneratedValue private int id; private double salary; public void setsalary(double salary) { this.salary = salary;

@Override public String tostring() { return "Employee [id=" + id + ", name=" + name + ", salary=" + salary + "]"; HBMFourteenthApp.java import java.util.list; import org.hibernate.query; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.transaction; import org.hibernate.cfg.annotationconfiguration; public class HBMFourteenthApp { @SuppressWarnings("unchecked") public static void main(string[] args) { Person krishna = new Person(); krishna.setname("krishna"); Employee swapnika = new Employee(); swapnika.setname("swapnika"); swapnika.setsalary(30000); SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(swapnika); Query query = session.createquery("from com.glarimy.hbm.person"); List<Person> persons = query.list(); for (Person p : persons) System.out.println(p); tx.commit(); catch (Exception e) { e.printstacktrace(); if (tx!= null)

tx.rollback(); finally { tx = null; session.close(); hibernate.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> name="hibernate.connection.url">jdbc:mysql://localhost/hbm</property> name="hibernate.connection.driver_class">com.mysql.jdbc.driver</property> name="hibernate.connection.username">root</property> name="hibernate.connection.password">admin</property> name="hibernate.hbm2ddl.auto">create-drop</property> name="dialect">org.hibernate.dialect.mysqlinnodbdialect</property> <mapping class="com.glarimy.hbm.employee" /> </session-factory> </hibernate-configuration>