spring-data-jpa 二、多对一结构、Repository
一、Entity
例如一个user实体和一个department实体 多个用户对应一个部门
1、user类
@id:声明了一个属性映射到数据库主键字段,主键生成策略有@GenerateValue来指定
@Column:声明了一个字段(字段名可以通过name来自定义)
@ManyToOne:多对一,many指的是定义此类的实体(User),one指的是此注解所注解的属性
@JoinColumn:与@ManyToOne配合使用,说明外键字段是“department_id”
package com.nxz.blog;
import javax.persistence.*;
import java.util.Date;
@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String name;
@Column(name = "create_date")
private Date createDate;
@ManyToOne
@JoinColumn(name = "department_id")
private Department department;
}
2、department类
@oneToMany:一对多,One指的是次注解所在的实体(department),many是指此注解的属性(User),
在这种一对多的关系映射上,“One”端采用@OneToMany注解是必须使用mapperBy,以声明Many端的对象(这里只User对象)的department属性提供了对应的映射关系
(User为什么使用Set而不是List,这个是jpa要求的,因为Set结构是存放不同元素的集合)
@Entity
class Department {
@Id
@GeneratedValue(strategy = GenerationType.