Dept
package com.wxh.dto;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
@Entity
public class Dept {
private int dno;
private String dname;
private String tel;
private Set<Emp> emps=new HashSet();
public Dept() {
}
public Dept(int dno, String dname, String tel) {
this.dno = dno;
this.dname = dname;
this.tel = tel;
}
@Id
public int getDno() {
return dno;
}
public void setDno(int dno) {
this.dno = dno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@OneToMany(fetch=FetchType.LAZY,cascade={CascadeType.ALL},mappedBy="dept")
public Set<Emp> getEmps() {
return emps;
}
public void setEmps(Set<Emp> emps) {
this.emps = emps;
}
}
Emp
package com.wxh.dto;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class Emp {
private int eno;
private String ename;
private String job;
private double sal;
private Dept dept;
public Emp() {
}
public Emp(int eno, String ename, String job, double sal) {
super();
this.eno = eno;
this.ename = ename;
this.job = job;
this.sal = sal;
}
@Id
public int getEno() {
return eno;
}
public void setEno(int eno) {
this.eno = eno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
@ManyToOne(fetch=FetchType.EAGER,cascade={CascadeType.ALL})
@JoinColumn(name="dno")
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
}
Test
package test;
import org.hibernate.Session;
import com.wxh.dto.Dept;
import com.wxh.dto.Emp;
import com.wxh.sessionfactory.HibernateSessionFactory;
public class Test {
public static void main(String[] args) {
Dept d=new Dept(10,"研发部","10086");
Emp e1=new Emp(1,"张三","项目经理",12000);
Emp e2=new Emp(2,"李四","测试经理",8000);
Emp e3=new Emp(3,"王五","产品经理",22000);
//指定员工所在部门
e1.setDept(d);
e2.setDept(d);
e3.setDept(d);
//将员工对象设置到集合中
d.getEmps().add(e1);
d.getEmps().add(e2);
d.getEmps().add(e3);
Session session=HibernateSessionFactory.getSession();
session.beginTransaction();
session.save(d);
session.getTransaction().commit();
}
}
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@127.0.0.1:1521:orcl
</property>
<property name="connection.username">hibernate</property>
<property name="connection.password">m123</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">oracle</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping class="com.wxh.dto.Dept"/>
<mapping class="com.wxh.dto.Emp"/>
</session-factory>
</hibernate-configuration>