`

六 员工与部门——》多对以关系

 
阅读更多
关联关系 
多对一关系 
员工与部门的关系 从员工角度 是多对一的关系  那么在员工的实体类中加上部门的属性即可 
package vo.util.bean;
/**
 * 员工类
 * @author Administrator
 *
 */
public class Employee {
    private int id;
    private String name;
    private Department derpartment;
	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 Department getDerpartment() {
		return derpartment;
	}
	public void setDerpartment(Department derpartment) {
		this.derpartment = derpartment;
	}
}

映射文件 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="vo.util.bean">

	<class name="Employee">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<many-to-one name="derpartment" column="depaer_id"/>
	</class>
	
</hibernate-mapping>

部门类 
package vo.util.bean;
/**
 * 部门类
 * @author Administrator
 *
 */
public class Department {
  private int id;
  private 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;
}
}

映射文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="vo.util.bean">

	<class name="Department">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
	</class>
	
</hibernate-mapping>


测试类
package vo.util.test;

import org.hibernate.Session;
import org.hibernate.Transaction;

import vo.util.HibernateUtil;
import vo.util.bean.Department;
import vo.util.bean.Employee;

public class ManytoOne {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	
         // add();
          query(1);
	}
    static Department add(){
    	Session session = null;
    	Transaction tx = null;
    	try{
    		session =HibernateUtil.getSession();
    		tx = session.beginTransaction();
    		//…你的代码save,delete,update,get…
    		Department dpart=new Department();
    		dpart.setName("BSM部门");
    		Employee em=new Employee();
    		em.setName("员工许春荣");
    		em.setDerpartment(dpart);
    		session.save(dpart);
    		session.save(em);
    		
    		tx.commit();
    		return dpart;
    	}finally{
    		if(session != null)session.close();
    	} 

    }
    
    static Employee query(int id){
    	Session session=null;
    	
    	try{
    	   session=HibernateUtil.getSession();
    	   Employee em=(Employee)session.get(Employee.class, id);
    	   System.out.println(em.getDerpartment().getName());
    		return em;
    	}finally{
    		if(session != null)session.close();
    	} 

    }
}

总结:根据测试后的结果分析 发现我们可以在查询一个员工的信息,同时也可以把部门的信息给查
找出来,在员工的映射文件中,利用其many-to-one标签 就可以把员工的关系给映射上,在这种多对一的关系的数据录入
时候,必须先录入主实体类的数据,然后才录入从录入实体的数据,如果先录入从实体然后才主实体的数据,会在hibernate
的执行过程中,产生两条插入语句 一条更新语句 一条插入语句是插入的是从实体的值 但是对于其关联关系的那个外键会是空值
然后插入主实体的数据,最后更新其从实体的外键数据,这时的外键数据就是有值的了  但是我们一般在设计的时候,一般规定
外键关系是不能为空的,那么这样操作会报非空异常错误 



end 完毕!

 

分享到:
评论

相关推荐

    员工关系管理——人力资源部内训ppt模板.rar

    标题中的"员工关系管理——人力资源部内训ppt模板"表明这是一个专门针对人力资源部门设计的培训材料,旨在帮助HR专业人员理解和掌握员工关系管理的理论与实践技巧。这种内训通常会涵盖员工关系管理的基础概念、最佳...

    员工关系浅探——人力资源部内训ppt模板.rar

    《员工关系浅探——人力资源部内训PPT模板》是一个专为人力资源部门设计的培训资料,旨在探讨如何有效地建立和维护良好的员工关系。这个压缩包包含的资源可能是一份详尽的PPT模板,用于指导内部培训课程。下面将详细...

    部门责权划分和绩效考核——劳动关系部.docx

    《部门责权划分和绩效考核——劳动关系部》 劳动关系部在企业的运营中扮演着至关重要的角色,它既是企业与员工之间的桥梁,也是维护和谐劳动关系的核心部门。以下是劳动关系部的主要职责、权力以及绩效考核的具体...

    员工入职手册——hr.pptx

    【员工入职手册——HR.pptx】是一份详细介绍HR集团的综合资料,旨在帮助新入职的员工快速融入公司环境,理解公司的价值观、发展战略以及各项政策。以下是对手册内容的详细解读: 1. **公司简介与发展历程**:HR集团...

    新员工入职培训——企业人事部商务培训课件ppt模板.rar

    在《新员工入职培训——企业人事部商务培训课件ppt模板》中,涵盖了多个关键知识点,旨在为新员工提供全面的指导。 首先,【组织与组织概述】部分会介绍公司的基本情况,如公司的历史、愿景、使命、价值观以及组织...

    企业员工管理系统的设计与实现(2010届已通过的毕业设计)——设计代码

    企业员工管理系统的设计与实现是一个典型的企业信息化建设项目,它涵盖了软件工程的多个重要环节,包括需求分析、系统设计、编程实现、数据库设计以及服务器部署等。本项目主要使用Java、JSP、SQLServer、Tomcat等...

    员工手册——互联网行业.doc

    在员工管理方面,手册强调了“公平竞争,择优录用”的原则,避免亲属关系在同一部门或存在上下级关系的情况,以防止潜在的利益冲突。离职后再入职的员工需要经过人力资源部的审批。新员工入职时需提供相关资料,并...

    公司人员管理系统——员工信息

    1. **数据库设计**:员工信息通常存储在关系型数据库中,如MySQL或SQL Server,通过精心设计的表结构,包括员工ID、姓名、职位、部门、入职日期、联系方式等字段,以满足信息查询和更新的需求。 2. **前端界面**:...

    员工管理——员工奖惩管理制度.doc

    员工管理——员工奖惩管理制度.doc 员工奖惩管理制度是公司对员工行为的规范和奖励制度,该制度的目的是为了维护公司正常工作秩序,鼓励先进,鞭策落后,使员工奖惩工作有所遵循。该制度适用于公司全体在职员工,...

    信息系统开发与管理——数据库练习题.doc

    部门与项目之间也是多对多关系,一个部门可以参与多个项目,一个项目也可以被多个部门接手。员工与项目之间同样为多对多关系,一个员工可以参与多个项目,反之,一个项目也可以有多个员工参与。 【知识点3】:决策...

    人力资源部——员工解聘流程.ppt

    《员工解聘流程详解——构建公正与高效的人力资源管理》 在企业的日常运营中,人力资源管理是一项至关重要的任务,而员工解聘流程则是其中必不可少的一环。这不仅关乎公司的规章制度,更涉及到员工的权益保障和企业...

    员工关系管理之非人力资源部门.docx

    虽然人力资源部门是员工关系的主要负责人,但其他部门的经理和主管同样需要理解和掌握人力资源管理的基本原则和技术,以确保团队的和谐与高效。 1. **绩效考核技术**:培训计划中多次提到了“企业绩效考核技术与...

    管理——电商企业的管理与发展——以京东商城为例(1).zip

    《管理——电商企业的管理与发展——以京东商城为例》是一份深度探讨电商企业管理与发展的文档,通过对京东商城这一知名电商平台的案例分析,揭示了电商企业在快速发展的互联网时代如何进行有效管理和战略规划。...

    关系型数据库设计——银行业务管理系统.pdf

    《关系型数据库设计——银行业务管理系统》 设计一个银行业务管理系统需要深入了解银行的业务流程和数据需求。在本文中,我们将探讨系统的需求分析、实体关系(E/R)模型的建立,以及物理数据库模型的设计。 首先...

    员工关系管理最新课程.pptx

    它涉及劳动合同、沟通、冲突解决、员工福利等多个层面,需要人力资源部门与各级管理层紧密协作,以实现员工和企业的共同发展。通过实施有效的员工关系管理策略,企业能够激发员工潜力,增强团队凝聚力,最终实现持续...

    软件工程课程设计——人事管理系统之固定员工管理

    在本项目中,我们关注的是一个名为“软件工程课程设计——人事管理系统之固定员工管理”的实践项目。这个项目旨在让学生掌握软件工程中的关键概念和技术,特别是如何应用它们来开发一个固定员工管理模块。以下是该...

    企业服务智能机器人 —— 您的数字员工

    数字员工不仅在金融、会计、采购、人力资源、信息技术等职能部门有着广泛的应用,还将在企业内部的其他方面发挥作用,比如系统监控、运维事务、邮件处理与分发等。通过各种形式的自动化,数字员工能够覆盖企业运营的...

    人力资源部门工作总结——范本..doc

    人力资源部门是企业管理的核心组成部分,主要负责企业的人力资源规划、招聘与配置、培训与发展、绩效管理、薪酬福利以及员工关系等方面的工作。它不仅关注企业的经济效益,更注重提升员工的工作满意度和整体素质,以...

    企业的卓越管理——六西格玛管理.ppt

    8. **互利的供方关系**:与供应商建立双赢的合作关系,以提升整体绩效。 **六西格玛管理** 六西格玛管理结合了统计学和工程方法,以实现业务流程的显著改善。它包括五个步骤,也称为DMAIC(定义、测量、分析、改进...

    Struts2 实现部门员工管理

    项目中提到了Oracle数据库,这是一款常用的商业关系型数据库系统,用于存储部门和员工的数据。你需要创建两个表,一个是“Department”(部门),另一个是“Employee”(员工)。部门表可能包含id(主键)、name...

Global site tag (gtag.js) - Google Analytics