`

Hibernate多对多(一对多)关联保存

阅读更多

Hibernate多对多,同时包含一对多,双向关联保存实例。

一。介绍

此例子是本人在项目中涉及到的例子。主要拿出来3张表来解释Hibernate一对多以及多对多的保存操作。

表介绍:

用户表(ITYW_USER);工作表(CHECK_WORK);工作表和用户表的关联表(CHECKWORK_OPERATOR)

二.实体

 

package com.inpoup.itoma.entity.user;

import java.util.HashSet;
import java.util.Set;

import com.inpoup.itoma.entity.user.Checkin;
import com.inpoup.itoma.entity.task.TodayTask;
import com.inpoup.itoma.entity.work.AssignWork;
import com.inpoup.itoma.entity.work.CheckWork;
import com.inpoup.itoma.entity.work.CheckWorkRecord;
import com.inpoup.itoma.entity.work.CheckWorkRecordTemplate;
import com.inpoup.itoma.entity.work.DailyWork;
import com.inpoup.itoma.entity.work.DailyWorkRecord;
import com.inpoup.itoma.entity.work.DailyWorkRecordTemplate;
import com.inpoup.itoma.entity.work.PersonalWork;

/**
 * 人员表对应实体类
 * @author  X宝龙
 * @version 1.0
 * @since    2013-06-07
 *
 */
public class User {

	private int id;							//ID
	private String account;						//帐户
	private String password;					//密码
	private String name;						//姓名
	private String sex;						//性别
	private String tel;						//电话
	private String email;						//E-Mail
	private String depart;						//部门
	private String company;						//公司
	private int state;						//状态
	
	private Set<CheckWork> makeCheckWorks = new HashSet<CheckWork>();
	private Set<CheckWork> actionCheckWorks = new HashSet<CheckWork>();
	private Set<AssignWork> makeAssignWorks = new HashSet<AssignWork>();
	private Set<DailyWork> makeDailyWorks = new HashSet<DailyWork>();
	private Set<DailyWork> actionDailyWorks = new HashSet<DailyWork>();
	private Set<PersonalWork> personalWorks = new HashSet<PersonalWork>();
	private Set<Role> roles = new HashSet<Role>();
	private Set<CheckWorkRecordTemplate> checkWorkRecordTemplates = new HashSet<CheckWorkRecordTemplate>();
	private Set<CheckWorkRecord> checkWorkRecords = new HashSet<CheckWorkRecord>();
	private Set<DailyWorkRecord> dailyWorkRecords = new HashSet<DailyWorkRecord>();
	private Set<DailyWorkRecordTemplate> dailyWorkRecordTemplates = new HashSet<DailyWorkRecordTemplate>();
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getAccount() {
		return account;
	}

	public void setAccount(String account) {
		this.account = account;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getDepart() {
		return depart;
	}

	public void setDepart(String depart) {
		this.depart = depart;
	}

	public String getCompany() {
		return company;
	}

	public void setCompany(String company) {
		this.company = company;
	}

	public int getState() {
		return state;
	}

	public void setState(int state) {
		this.state = state;
	}


	public Set<CheckWork> getMakeCheckWorks() {
		return makeCheckWorks;
	}

	public void setMakeCheckWorks(Set<CheckWork> makeCheckWorks) {
		this.makeCheckWorks = makeCheckWorks;
	}

	public Set<CheckWork> getActionCheckWorks() {
		return actionCheckWorks;
	}

	public void setActionCheckWorks(Set<CheckWork> actionCheckWorks) {
		this.actionCheckWorks = actionCheckWorks;
	}

	

	public Set<AssignWork> getMakeAssignWorks() {
		return makeAssignWorks;
	}

	public void setMakeAssignWorks(Set<AssignWork> makeAssignWorks) {
		this.makeAssignWorks = makeAssignWorks;
	}

	public Set<DailyWork> getMakeDailyWorks() {
		return makeDailyWorks;
	}

	public void setMakeDailyWorks(Set<DailyWork> makeDailyWorks) {
		this.makeDailyWorks = makeDailyWorks;
	}

	public Set<DailyWork> getActionDailyWorks() {
		return actionDailyWorks;
	}

	public void setActionDailyWorks(Set<DailyWork> actionDailyWorks) {
		this.actionDailyWorks = actionDailyWorks;
	}

	public Set<PersonalWork> getPersonalWorks() {
		return personalWorks;
	}

	public void setPersonalWorks(Set<PersonalWork> personalWorks) {
		this.personalWorks = personalWorks;
	}

	public Set<Role> getRoles() {
		return roles;
	}

	public void setRoles(Set<Role> roles) {
		this.roles = roles;
	}

	public Set<CheckWorkRecordTemplate> getCheckWorkRecordTemplates() {
		return checkWorkRecordTemplates;
	}

	public void setCheckWorkRecordTemplates(
			Set<CheckWorkRecordTemplate> checkWorkRecordTemplate) {
		this.checkWorkRecordTemplates = checkWorkRecordTemplate;
	}

	public Set<CheckWorkRecord> getCheckWorkRecords() {
		return checkWorkRecords;
	}

	public void setCheckWorkRecords(Set<CheckWorkRecord> checkWorkRecord) {
		this.checkWorkRecords = checkWorkRecord;
	}

	public Set<DailyWorkRecord> getDailyWorkRecords() {
		return dailyWorkRecords;
	}

	public void setDailyWorkRecords(Set<DailyWorkRecord> dailyWorkRecords) {
		this.dailyWorkRecords = dailyWorkRecords;
	}

	public Set<DailyWorkRecordTemplate> getDailyWorkRecordTemplates() {
		return dailyWorkRecordTemplates;
	}

	public void setDailyWorkRecordTemplates(
			Set<DailyWorkRecordTemplate> dailyWorkRecordTemplates) {
		this.dailyWorkRecordTemplates = dailyWorkRecordTemplates;
	}
	
}

  

package com.inpoup.itoma.entity.work;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import com.inpoup.itoma.entity.user.User;

/**
 * 巡检工作表对应实体类
 * @author  常宝龙
 * @version 1.0
 * @since    2013-06-07
 *
 */
public class CheckWork{

	private int id;							//ID
	private Date planStartTime;					//计划开始时间
	private Date planEndTime;					//计划结束时间
	private String operationStartTime;				//执行开始时间
	private String operationEndTime;				//执行结束时间
	private String workCycle;					//工作周期
	private String workDay;						//工作日
	private String cusRemind;					//定制提醒
	private int remindTimes;					//提醒次数
	private int remindCycle;					//提醒周期
	private String workCont;					//工作内容
	private User user;						//计划制定人(many-to-one关系)
	private Date planMakeTime;					//计划制定时间
	private int planState;						//计划状态
	private int state;						//状态
	
	private Set<User> users = new HashSet<User>();
	private Set<CheckWorkRecordTemplate> checkWorkRecordTemplate = new HashSet<CheckWorkRecordTemplate>();
	private Set<CheckWorkRecord> checkWorkRecord = new HashSet<CheckWorkRecord>();
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Date getPlanStartTime() {
		return planStartTime;
	}

	public void setPlanStartTime(Date planStartTime) {
		this.planStartTime = planStartTime;
	}

	public Date getPlanEndTime() {
		return planEndTime;
	}

	public void setPlanEndTime(Date planEndTime) {
		this.planEndTime = planEndTime;
	}

	public String getOperationStartTime() {
		return operationStartTime;
	}

	public void setOperationStartTime(String operationStartTime) {
		this.operationStartTime = operationStartTime;
	}

	public String getOperationEndTime() {
		return operationEndTime;
	}

	public void setOperationEndTime(String operationEndTime) {
		this.operationEndTime = operationEndTime;
	}

	public String getWorkCycle() {
		return workCycle;
	}

	public void setWorkCycle(String workCycle) {
		this.workCycle = workCycle;
	}

	public String getWorkDay() {
		return workDay;
	}

	public void setWorkDay(String workDay) {
		this.workDay = workDay;
	}

	public String getCusRemind() {
		return cusRemind;
	}

	public void setCusRemind(String cusRemind) {
		this.cusRemind = cusRemind;
	}

	public int getRemindTimes() {
		return remindTimes;
	}

	public void setRemindTimes(int remindTimes) {
		this.remindTimes = remindTimes;
	}

	public int getRemindCycle() {
		return remindCycle;
	}

	public void setRemindCycle(int remindCycle) {
		this.remindCycle = remindCycle;
	}

	public String getWorkCont() {
		return workCont;
	}

	public void setWorkCont(String workCont) {
		this.workCont = workCont;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public Date getPlanMakeTime() {
		return planMakeTime;
	}

	public void setPlanMakeTime(Date planMakeTime) {
		this.planMakeTime = planMakeTime;
	}

	public int getPlanState() {
		return planState;
	}

	public void setPlanState(int planState) {
		this.planState = planState;
	}

	public int getState() {
		return state;
	}

	public void setState(int state) {
		this.state = state;
	}

	public Set<User> getUsers() {
		return users;
	}

	public void setUsers(Set<User> users) {
		this.users = users;
	}

	public Set<CheckWorkRecordTemplate> getCheckWorkRecordTemplate() {
		return checkWorkRecordTemplate;
	}

	public void setCheckWorkRecordTemplate(
			Set<CheckWorkRecordTemplate> checkWorkRecordTemplate) {
		this.checkWorkRecordTemplate = checkWorkRecordTemplate;
	}

	public Set<CheckWorkRecord> getCheckWorkRecord() {
		return checkWorkRecord;
	}

	public void setCheckWorkRecord(Set<CheckWorkRecord> checkWorkRecord) {
		this.checkWorkRecord = checkWorkRecord;
	}
	
}

 三.表结构


 

 

四.配置映射文件

user.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">
<!-- 
	version:  1.0
	date:  2013-06-06
	author:  常宝龙
 -->
  <hibernate-mapping package="com.inpoup.itoma.entity.user">
  	<!-- 人员表 -->
  	<class name="User" table="ITYW_USER">
  		<id name="id" column="ID">
  			<generator class="sequence">
  				<param name="sequence">SEQ_ITYW_USER</param>
  			</generator>
  		</id>
  		<property name="account" type="java.lang.String">
 			<column name="ACCOUNT" ></column>
 		</property>
 		<property name="password" type="java.lang.String">
 			<column name="PASSWORD" ></column>
 		</property>
 		<property name="name" type="java.lang.String">
 			<column name="NAME" ></column>
 		</property>
 		<property name="sex" type="java.lang.String">
 			<column name="SEX" ></column>
 		</property>
 		<property name="tel" type="java.lang.String">
 			<column name="TEL" ></column>
 		</property>
 		<property name="email" type="java.lang.String">
 			<column name="EMAIL" ></column>
 		</property>
 		<property name="depart" type="java.lang.String">
 			<column name="DEPART" ></column>
 		</property>
 		<property name="company" type="java.lang.String">
 			<column name="COMPANY" ></column>
 		</property>
 		<property name="state" type="java.lang.Integer">
 			<column name="STATE" ></column>
 		</property>
 		<set name="makeCheckWorks" inverse="true">
 			<key column="PLAN_MAKER"></key>
 			<one-to-many class="com.inpoup.itoma.entity.work.CheckWork" />
 		</set>
  		<!-- 人员表与巡检工作表的多对多关系 -->
 		<set name="actionCheckWorks" table="CHECKWORK_OPERATOR">
 			<key column="USER_ID"></key>
 			<many-to-many class="com.inpoup.itoma.entity.work.CheckWork" column="CHECKWORK_ID"></many-to-many>
 		</set>
 		<set name="makeDailyWorks" inverse="true">
 			<key column="PLAN_MAKER"></key>
 			<one-to-many class="com.inpoup.itoma.entity.work.DailyWork" />
 		</set>
  		<!-- 人员表与日常工作表的多对多关系 -->
 		<set name="actionDailyWorks" table="DAILYWORK_OPEARTOR">
 			<key column="PLAN_MAKER"></key>
 			<many-to-many class="com.inpoup.itoma.entity.work.DailyWork" column="DAILYWORK_ID"></many-to-many>
 		</set>
 		<set name="makeAssignWorks" inverse="true">
 			<key column="PLAN_MAKER"></key>
 			<one-to-many class="com.inpoup.itoma.entity.work.AssignWork" />
 		</set>
  		<!-- 人员表与个人工作表的多对多关系 -->
 		<set name="personalWorks" table="PERSONALWORK_OPERATOR">
 			<key column="USER_ID"></key>
 			<many-to-many class="com.inpoup.itoma.entity.work.PersonalWork" column="PERSONALWORK_ID"></many-to-many>
 		</set>
 		<!-- 人员表与角色表的多对多关系 -->
 		<set name="roles" table="USER_ROLE">
 			<key column="USER_ID"></key>
 			<many-to-many class="com.inpoup.itoma.entity.user.Role" column="ROLE_ID"></many-to-many>
 		</set>
 		<set name="checkWorkRecordTemplates" inverse="true">
 			<key column="TEMPLATE_MAKER"></key>
 			<one-to-many class="com.inpoup.itoma.entity.work.CheckWorkRecordTemplate" />
 		</set>
 		<set name="checkWorkRecords" inverse="true">
 			<key column="RECORD_USER_ID"></key>
 			<one-to-many class="com.inpoup.itoma.entity.work.CheckWorkRecord" />
 		</set>
 		<set name="dailyWorkRecords" inverse="true">
 			<key column="RECORD_USER_ID"></key>
 			<one-to-many class="com.inpoup.itoma.entity.work.DailyWorkRecord" />
 		</set>
 		<set name="dailyWorkRecordTemplates" inverse="true">
 			<key column="TEMPLATE_MAKER"></key>
 			<one-to-many class="com.inpoup.itoma.entity.work.DailyWorkRecordTemplate" />
 		</set>
  	</class>

 work.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">
<!-- 
	version:  1.0
	date:  2013-06-07
	author:  常宝龙
 -->
 <hibernate-mapping package="com.inpoup.itoma.entity.work">
<!-- 巡检工作表 -->
 	<class name="CheckWork" table="CHECK_WORK">
 		<id name="id" column="ID">
 			<generator class="sequence">
 				<param name="sequence">SEQ_CHECK_WORK</param>
 			</generator>
 		</id>
 		<property name="planStartTime" type="java.util.Date">
 			<column name="PLAN_START_TIME"></column>
 		</property>
 		<property name="planEndTime" type="java.util.Date">
 			<column name="PLAN_END_TIME"></column>
 		</property>
 		<property name="operationStartTime" type="java.lang.String">
 			<column name="OPERATION_START_TIME"></column>
 		</property>
 		<property name="operationEndTime" type="java.lang.String">
 			<column name="OPERATION_END_TIME"></column>
 		</property>
 		<property name="workCycle" type="java.lang.String">
 			<column name="WORK_CYCLE" ></column>
 		</property>
 		<property name="workDay" type="java.lang.String">
 			<column name="WORK_DAY" ></column>
 		</property>
 		<property name="cusRemind" type="java.lang.String">
 			<column name="CUS_REMIND" ></column>
 		</property>
 		<property name="remindTimes" type="java.lang.Integer">
 			<column name="REMIND_TIMES" ></column>
 		</property>
 		<property name="remindCycle" type="java.lang.Integer">
 			<column name="REMIND_CYCLE" ></column>
 		</property>
 		<property name="workCont" type="java.lang.String">
 			<column name="WORK_CONT" ></column>
 		</property>
 		<many-to-one name="user" column="PLAN_MAKER" class="com.inpoup.itoma.entity.user.User">
 		</many-to-one>
 		<property name="planMakeTime" type="java.util.Date">
 			<column name="PLAN_MAKE_TIME"></column>
 		</property>
 		<property name="planState" type="java.lang.Integer">
 			<column name="PLAN_STATE" ></column>
 		</property>
 		<property name="state" type="java.lang.Integer">
 			<column name="STATE" ></column>
 		</property>
      </class>

 五。保存实例

package com.inpoup.itoma.service.work.impl;

import java.text.SimpleDateFormat;
import java.util.Date;

import com.inpoup.itoma.dao.work.CheckWorkDao;
import com.inpoup.itoma.entity.user.User;
import com.inpoup.itoma.entity.work.CheckWork;
import com.inpoup.itoma.service.work.CheckWorkService;
import com.inpoup.web.core.dao.BaseDao;
import com.inpoup.web.core.service.impl.BaseServiceImpl;

/**
 * 巡检工作Service实现类
 * @author  常宝龙
 * @since		2013-06-13
 * @version	1.0
 *
 */
public class CheckWorkServiceImpl extends BaseServiceImpl<CheckWork> implements CheckWorkService{
	
	public CheckWorkServiceImpl(BaseDao<CheckWork> baseDao) {
		super(baseDao);
	}
	
	private CheckWorkDao checkWorkDao;
	
	/**
	 * 制定巡检工作计划
	 */
	@Override
	public String makeCheckWork(Date planStartTime, Date planEndTime,
			String operationStartTime, String operationEndTime,
			String workCycle, String workDay, String cusRemind,
			String remindTimes, String remindCycle, String workCont,
			String makeId, String planMakeTime, String planState, String state,String assignPerson) throws Exception{
			//时间转换
			SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			CheckWork checkWork = new CheckWork();
			User user = new User();
			//System.out.println("============================="+planStartTime);
			checkWork.setPlanStartTime(planStartTime);
			checkWork.setPlanEndTime(planEndTime);
			checkWork.setOperationStartTime(operationStartTime);
			checkWork.setOperationEndTime(operationEndTime);
			checkWork.setWorkCycle(workCycle);
			checkWork.setWorkDay(workDay);
			checkWork.setCusRemind(cusRemind);
			checkWork.setRemindTimes(Integer.parseInt(remindTimes));
			checkWork.setRemindCycle(Integer.parseInt(remindCycle));
			checkWork.setWorkCont(workCont);
			checkWork.setPlanMakeTime(simpleDateFormat.parse(planMakeTime));
			checkWork.setPlanState(Integer.parseInt(planState));
			checkWork.setState(Integer.parseInt(state));
			user.setId(Integer.parseInt(assignPerson));
			user.getMakeCheckWorks().add(checkWork);
			checkWork.getUsers().add(user);
			user.setId(Integer.parseInt(makeId));
			checkWork.setUser(user);
//			//user.setId(Integer.parseInt(makeId));
//			//解析分配执行人ID
//			//user.setId(Integer.parseInt(assignPerson[i]));
//			//assignPerson[i]
//			user.getMakeCheckWorks().add(checkWork);
//			checkWork.getUsers().add(user);
//			checkWork.setUser(user);
			//this.getCheckWorkDao().save(checkWork);
			this.addService(checkWork);
			return "success";
	}

	public CheckWorkDao getCheckWorkDao() {
		return checkWorkDao;
	}

	public void setCheckWorkDao(CheckWorkDao checkWorkDao) {
		this.checkWorkDao = checkWorkDao;
	}
	
	

}

 
 

  • 大小: 25.1 KB
  • 大小: 54.5 KB
  • 大小: 38.4 KB
1
4
分享到:
评论

相关推荐

    传智播客hibernate教程_保存多对一关联关系的更进一步分析

    有关hibernate中保存多对一关联关系的进一步分析,很详细的介绍了多对一关系

    hibernate一对多关联映射(单向关联)

    博文链接:https://llying.iteye.com/blog/220809

    Hibernate关联关系(一对多)

    Hibernate关联关系(一对多)代码的具体实现,包括保存班级;保存学生;保存班级的时候同时保存学生;已经存在一个班级,新建一个学生,并且建立该学生和该班级之间的关系等一对多关系的情况。不足之处还望谅解

    hibernate一对多,多对一,一对多双向关联

    NULL 博文链接:https://huihai.iteye.com/blog/901171

    Hibernate_Annotation关联映射

    使用@OneToMany批注可定义一对多关联,一对多关联可以是双向关联。 在EJB3规范中多对一这端几乎总是双向关联中的主体(owner)端,而一对多这端关联批注为@OneToMany(mappedBy...) @Entity Public class Troop{ @...

    传智播客李勇hibernate源码1-20课

    传智播客李勇hibernate源码1-20课,目录如下:01_hibernate介绍... 17_一对多关联关系的映射与原理分析 18_一对一主键关联关系的映射与原理分析 19_一对一主键关联关系的检索 20_一对一外键关联关系的映射与原理分析

    hibernate_second项目源码

    这个项目写的是hibernate一对多的双向关联的保存操作。

    Hibernate+中文文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    HibernateAPI中文版.chm

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    hibernate3.2中文文档(chm格式)

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    Hibernate中文详细学习文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    Hibernate 中文 html 帮助文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联,...

    Hibernate注释大全收藏

    这种策略支持双向的一对多关联,但不支持 IDENTIFY 生成器策略,因为ID必须在多个表间共享。一旦使用就不能使用AUTO和IDENTIFY生成器。 每个类层次结构一张表 @Entity @Inheritance(strategy=InheritanceType....

    最全Hibernate 参考文档

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 三重关联...

    Hibernate教程

    7.2.5. 一对多关联(One-to-many Associations) 7.3. 高级集合映射(Advanced collection mappings) 7.3.1. 有序集合(Sorted collections) 7.3.2. 双向关联(Bidirectional associations) 7.3.3. 三重关联...

    hibernate 体系结构与配置 参考文档(html)

    一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联,涉及...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     15.3.4 把多对多关联分解为两个一对多关联  15.4 小结  15.5 思考题 第16章 Hibernate的检索策略  16.1 Hibernate的检索策略简介  16.2 类级别的检索策略  16.2.1 立即检索  16.2.2 延迟检索  16.3 一对多...

    Hibernate实战(第2版 中文高清版)

     7.2.1 一对多关联   7.2.2 多对多关联   7.2.3 把列添加到联结表   7.2.4 映射map   7.3 多态关联   7.3.1 多态的多对一关联   7.3.2 多态集合   7.3.3 对联合的多态关联   7.3.4 每个具体类一张...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    6.2.5. 一对多关联(One-to-many Associations) 6.3. 高级集合映射(Advanced collection mappings) 6.3.1. 有序集合(Sorted collections) 6.3.2. 双向关联(Bidirectional associations) 6.3.3. 双向关联...

    Hibernate注解

    * @OneToMany 设置一对多关联。cascade属性指定关联级别,参考@OneToOne中的说明。fetch指定是否延迟加载,值为FetchType.LAZY表示延迟,为FetchType.EAGER表示立即加载 * 方法一 使用这种配置,在为“一端”添加“多...

Global site tag (gtag.js) - Google Analytics