Hibernate

adplus-dvertising
Example Of Many To Many Mapping
Previous Home Next

hibernate.cfg.xml

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

<!-- R4r.co.in. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
<property name="connection.username">system</property>
<property name="connection.password">system</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<mapping resource="m-to-m.hbm.xml"/>
</session-factory>
</hibernate-configuration>

Emp.java

package r4r;
import java.util.*;
public class Emp {
int id;
String name,job;
int salary;
Set<Privilage> privilages;

public Emp() {
super();
// TODO Auto-generated constructor stub
}
public Emp(String name, String job, int salary, Set<Privilage> privilages) {
super();
this.name = name;
this.job = job;
this.salary = salary;
this.privilages = privilages;
}
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 String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public Set<Privilage> getPrivilages() {
return privilages;
}
public void setPrivilages(Set<Privilage> privilages) {
this.privilages = privilages;
}
}

Privilage.java

package r4r;

import java.util.Set;
public class Privilage {
int id;
String name;
int cost;
Set<Emp> employees;

public Privilage() {
super();
// TODO Auto-generated constructor stub
}
public Privilage(String name, int cost, Set<Emp> employees) {
super();
this.name = name;
this.cost = cost;
this.employees = employees;
}
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 getCost() {
return cost;
}
public void setCost(int cost) {
this.cost = cost;
}
public Set<Emp> getEmployees() {
return employees;
}
public void setEmployees(Set<Emp> employees) {
this.employees = employees;
}
}

m-to-m.hbm.xml

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

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-mapping>
<class name="r4r.Privilage">
<id name="id" type="int">
<generator class="increment"></generator>
</id>
<property name="name"/>
<property name="cost" type="int"/>
<set name="employees" table="empprivilage" inverse="true">
<key column="privilageid"/>
<many-to-many column="empid" class="r4r.Emp"/>
</set>
</class>
<class name="r4r.Emp">
<id name="id" type="int">
<generator class="increment"/>
</id>
<property name="name"/>
<property name="job"/>
<property name="salary"/>
<set name="privilages" inverse="true" cascade="all" table="empprivilage">
<key column="empid"/>
<many-to-many column="privilageid" class="r4r.Privilage"/>
</set>
</class>
</hibernate-mapping>

Selecttest.java

packager4r;

importjava.util.Iterator;
importjava.util.Scanner;
importjava.util.Set;
importorg.hibernate.Session;
importorg.hibernate.SessionFactory;
importorg.hibernate.cfg.Configuration;
publicclassSelecttest{
publicstaticvoidmain(String[]args){

Configurationcfg=newConfiguration().configure();
SessionFactoryf=cfg.buildSessionFactory();
Sessionsession=f.openSession();
Scannerin=newScanner(System.in);
System.out.println("enterempid");
intempid=in.nextInt();
Empemp=(Emp)session.load(Emp.class,empid);
System.out.println("employeesdetails");
System.out.println(emp.getName()+"\t"+emp.getJob()+"\t"+emp.getSalary());
System.out.println("followingprivilagesareenjoyed:");
Set<privilage>pr=emp.getPrivilages();
Iterator<privilage>itr=pr.iterator();
while(itr.hasNext())
{
Privilagepre=itr.next();
System.out.println(pre.getId()+"\t"+pre.getName()+"\t"+pre.getCost());
}
System.out.println("enterprivilageid:");
intprivilageid=in.nextInt();
Privilageprivilages=(Privilage)session.load(Privilage.class,privilageid);
System.out.println("followingprivilagedetais:");
System.out.println(privilages.getName()+"\t"+privilages.getCost());
System.out.println("employeebenifitedare:-");
Set<emp>emp11=privilages.getEmployees();
System.out.println("followingemployeesarebenifited:");
Iterator<emp>eitr=emp11.iterator();
while(eitr.hasNext())
{
Empe=eitr.next();
System.out.println(e.getName()+"\t"+e.getJob()+"\t"+e.getSalary());
}
session.close();
}
}
Previous Home Next