JPA的ManyToOne

使用hibernate作为持久工具,一个部门下面有多个员工,要在新建部门时,同时将新增的员工一起插入表中。

mysql建表:

CREATE TABLE `department` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `dname` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
)

CREATE TABLE `employee` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ename` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  `phone` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
)
/**
 * 部门:与员工一对多关系
 *
 */
@Entity
@Table(name="department")
public class Department {
    
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id; 
    
    @Column(length=20)
    private String dname; //部门名称
    
    @OneToMany
    private List<Employee> employeeList = new ArrayList<>(); //员工集合

    // get/set方法
/**
 * 员工:与部门多对一关系
 *
 */
@Entity
@Table(name="employee")
public class Employee {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id; //ID
    
    @Column(length=20)
    private String ename; //员工姓名
    
    @Column(length=20)
    private String phone; //电话
    
    @ManyToOne
    private Department department; //所属部门
   
    //get/set方法
}
//使用
Department d = new Department();
d.setDname("soft");

Employee e1 = new Employee();
e1.setEName("liao");
e1.setPhone("110")
Employee e2 = new Employee();
e2.setEName("liao");
e2.setPhone("110")

List<Employee> list = new ArrayList<>();
list.add(e1);
list.add(e2);
d.setEmployeeList(list);

当插入部门时,就能自动插入相应的级联数据

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,039评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 9,277评论 0 11
  • 2017年8月21日 我原本只想简单记录一下springboot中应用Jpa的简单操作。不想由于hibernate...
    行者N阅读 11,610评论 0 23
  • 死亡的阴影永远紧跟在每一个活着的人身后。 女生宿舍走廊的灯又坏了,忽明忽暗的,比起一片漆黑,这往往更能激发起人们内...
    无海无边阅读 4,127评论 20 10
  • 每个人都要有自己的思想以及主见
    FUYI阅读 1,092评论 0 0