zl程序教程

您现在的位置是:首页 >  后端

当前栏目

第十章 基于Annotation的关系映射 多对一与一对多

映射 基于 关系 一对 annotation 第十章
2023-09-14 08:57:15 时间
p >如果下面部分内容有不明白的可以查找:

基于Annotation的关系映射 前期准备:http://blog.csdn.net/p_3er/article/details/9061911

基于xml的多对一:http://blog.csdn.net/p_3er/article/details/9036759

基于xml的一对多:http://blog.csdn.net/p_3er/article/details/9036921


本文是把多对一与一对多结合起来了,形成一个双向的映射。如果只想要单向的话,把别外一边的注解去掉就是了。



@Table(name = "department", catalog = "hibernate") public class Department implements java.io.Serializable { private Integer id; private String name; private Set Employee employees = new HashSet Employee public Department() { public Department(String name, Set Employee employees) { this.name = name; this.employees = employees; @GeneratedValue @Column(name = "id", unique = true, nullable = false) public Integer getId() { return this.id; public void setId(Integer id) { this.id = id; @Column(name = "name", nullable = false, length = 45) public String getName() { return this.name; public void setName(String name) { this.name = name; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "department") department和employee的一对多关系中,当指定department中的mappedBy后,关系只能被employee来主动维护.也就是employee级联的处理department.  之前的映射文件: set name="employees" inverse="false" cascade="all" key column="department_id" /key one-to-many / /set public Set Employee getEmployees() { return this.employees; public void setEmployees(Set Employee employees) { this.employees = employees; }
Employee:
@Entity

@Table(name = "employee", catalog = "hibernate")

public class Employee implements java.io.Serializable {

 private Integer id;

 private Department department;

 private String name;

 public Employee() {

 @GeneratedValue

 @Column(name = "id", unique = true, nullable = false)

 public Integer getId() {

 return this.id;

 public void setId(Integer id) {

 this.id = id;

 @ManyToOne(fetch = FetchType.LAZY)

 @JoinColumn(name = "department_id")

 多对一。

 many-to-one name="department" column="department_id" /many-to-one 

 public Department getDepartment() {

 return this.department;

 public void setDepartment(Department department) {

 this.department = department;

 @Column(name = "name", nullable = false, length = 45)

 public String getName() {

 return this.name;

 public void setName(String name) {

 this.name = name;

}





SpringBoot从入门到精通(二十八)JPA 的实体映射关系,一对一,一对多,多对多关系映射! 前面讲了Spring Boot 使用 JPA,实现JPA 的增、删、改、查的功能,同时也介绍了JPA的一些查询,自定义SQL查询等使用。JPA使用非常简单,功能非常强大的ORM框架,无需任何数据访问层和sql语句即可实现完整的数据操作方法。但是,之前都是介绍的单表的增删改查等操作,多表多实体的数据操作怎么实现呢?接下来聊一聊 JPA 的一对一,一对多,多对一,多对多等实体映射关系。
SpringBoot从入门到精通(二十八) JPA 的实体映射关系,轻松一对一,一对多,多对多关系映射! 前面讲了Spring Boot 使用 JPA,实现JPA 的增、删、改、查的功能,同时也介绍了JPA的一些查询,自定义SQL查询等使用。JPA使用非常简单,功能非常强大的ORM框架,无需任何数据访问层和sql语句即可实现完整的数据操作方法。但是,之前都是介绍的单表的增删改查等操作,多表多实体的数据操作怎么实现呢?接下来聊一聊 JPA 的一对一,一对多,多对一,多对多等实体映射关系。
Mybatis【一对多、多对一、多对多】知识要点 Mybatis【多表连接】 我们在学习Hibernate的时候,如果表涉及到两张的话,那么我们是在映射文件中使用..等标签将其的映射属性关联起来的...那么在我们Mybatis中又怎么做呢??? 先来回顾一下我们SQL99的语法: 一)内连接(等值连接):查询客户姓名,订单编号,订单价格