多对多 hibernate映射
2015-07-14 16:20
302 查看
数据库:
员工
测试,程序分别将记录加入三个表
[code]create table EMPLOYEE ( EMPID NUMBER(6) not null, EMPNAME VARCHAR2(32) ) alter table EMPLOYEE add primary key (EMPID) ; create table PROJECT ( PROJID NUMBER(6) not null, PROJNAME VARCHAR2(32) ) alter table PROJECT add primary key (PROJID) ; create table PROJ_EMP ( PROJID NUMBER(6), EMPID NUMBER(6) ) alter table PROJ_EMP add constraint FK_EMPLOYEE_PROJ_EMP foreign key (EMPID) references EMPLOYEE (EMPID); alter table PROJ_EMP add constraint FK_PROJECT_PROJ_EMP foreign key (PROJID) references PROJECT (PROJID);
[code]package com.emp.pojo; import java.util.HashSet; import java.util.Set; /** * Project entity. @author MyEclipse Persistence Tools */ public class Project implements java.io.Serializable { // Fields private Integer projid; private String projname; private Set<Employee> employee = new HashSet<Employee>(); // Constructors /** default constructor */ public Project() { } /** full constructor */ public Project(String projname) { this.projname = projname; } // Property accessors public Integer getProjid() { return this.projid; } public void setProjid(Integer projid) { this.projid = projid; } public String getProjname() { return this.projname; } public void setProjname(String projname) { this.projname = projname; } public Set<Employee> getEmployee() { return employee; } public void setEmployee(Set<Employee> employee) { this.employee = employee; } }
员工
[code]package com.emp.pojo; import java.util.HashSet; import java.util.Set; /** * Employee entity. @author MyEclipse Persistence Tools */ public class Employee implements java.io.Serializable { // Fields private Integer empid; private String empname; private Set<Project> project=new HashSet<Project>(); // Constructors /** default constructor */ public Employee() { } /** full constructor */ public Employee(String empname) { this.empname = empname; } // Property accessors public Integer getEmpid() { return this.empid; } public void setEmpid(Integer empid) { this.empid = empid; } public String getEmpname() { return this.empname; } public void setEmpname(String empname) { this.empname = empname; } public Set<Project> getProject() { return project; } public void setProject(Set<Project> project) { this.project = project; } }
[code]<?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"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.emp.pojo.Employee" table="employee" > <id name="empid" type="java.lang.Integer"> <column name="EMPID" /> <generator class="native" /> </id> <property name="empname" type="java.lang.String"> <column name="EMPNAME" length="32" /> </property> <set name="project" table="proj_emp" cascade="save-update"> <key column="empid" /> <many-to-many class="com.emp.pojo.Project" column="projid" /> </set> </class> </hibernate-mapping>
[code]<?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"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.emp.pojo.Project" table="project" > <id name="projid" type="java.lang.Integer"> <column name="PROJID" /> <generator class="native" /> </id> <property name="projname" type="java.lang.String"> <column name="PROJNAME" length="32" /> </property> <set name="employee" table="proj_emp" cascade="save-update"> <key column="projid" /> <many-to-many class="com.emp.pojo.Employee" column="empid"/> </set> </class> </hibernate-mapping>
[code]package com.emp.pojo; import static org.junit.Assert.*; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.BeforeClass; import org.junit.Test; import sessionfactory.HibernateSessionFactory; public class EmployeeTest { @BeforeClass public static void setUpBeforeClass() throws Exception { } @Test public void test() { Session session = HibernateSessionFactory.getSession(); Transaction tx= session.beginTransaction(); Project proj1 = new Project(); proj1.setProjname("qq二次开发"); Project proj2 = new Project(); proj2.setProjname("华为"); Project proj3 = new Project(); proj3.setProjname("可乐"); Set<Project> xiaozhangset = new HashSet<Project>(); Employee xiaozhang = new Employee(); xiaozhang.setEmpname("张晓华"); Employee xiaowang = new Employee(); xiaowang.setEmpname("王国光"); xiaozhangset.add(proj1); xiaozhangset.add(proj2); xiaozhang.setProject(xiaozhangset); xiaowang.setProject(xiaozhangset); session.save(xiaozhang); session.save(xiaowang); tx.commit(); } }
测试,程序分别将记录加入三个表
相关文章推荐
- CSS3学习(七)响应式布局基础
- Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!
- 制作U盘启动 CDLinux--破解路由器必备工具
- mysql常用汇总
- git tag查看、创建与删除
- material design——设计文档
- 有空学习的技术
- mysql 与 memcache 字段名后面有空格时会产生什么问题(转)
- ios UIView的clipsTobounds属性
- HTML_常见命令学习笔记
- 多对多 hibernate映射
- Currency Exchange 分类: POJ 2015-07-14 16:20 10人阅读 评论(0) 收藏
- dialog
- angel and demon : Ecstasy of Saint Teresa
- HostConfig.deployDirectories
- Leetcode 之 Candy
- 杨辉三角
- sql server 获取系统时间的方法
- 百度地图显示空白(只有格子)的解决方法
- 本地sqlyog连接错误