1.一对一关联 @OneToOne

import lombok.Data;

import javax.persistence.*;

/**
* @Author: GWL
* @Description: 一对一
* @Date: Create in 23:10 2019/5/10
*/
@Entity
@Table(name = "t_girlfriend")
@Data
public class Girlfriend { @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "g_id")
private int id; @Column(name = "g_name")
private String name; @Column(name = "g_age")
private int age; @Column(name = "g_sweet")
private String sweet; @Temporal(value=TemporalType.TIMESTAMP)
@Column(name = "create_date")
private java.util.Date createDate; @OneToOne
@JoinColumn(name = "t_boyfriend")
private Users user; }

2.多对一和一对多  @ManyToOne

import lombok.Data;

import javax.persistence.*;

/**
* @Author: GWL
* @Description: 用户表
* @Date: Create in 22:40 2019/5/3
*
*/
@Entity
@Table(name="user")
@Data
public class Users {
/**
*
* 一个角色多个用户
* @JoinColumn 维护外键
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private int id; @Column(name = "user_name")
private String name; @Column(name = "user_age")
private int age; @Temporal(value=TemporalType.TIMESTAMP)
@Column(name = "create_date")
private java.util.Date createDate; @ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "r_id")
private Roles roles; }

@OneToMany

import lombok.Getter;
import lombok.Setter; import javax.persistence.*;
import java.util.HashSet;
import java.util.Set; /**
* @Author: GWL
* @Description: 角色表 与用户表一对多,角色表与菜单表多对多
* @Date: Create in 19:06 2019/5/8
*/
@Entity
@Table(name="t_roles")
@Getter
@Setter
public class Roles { @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "role_id")
private int roleId; @Column(name = "role_name")
private String roleName; @Column(name = "note")
private String note; @OneToMany(mappedBy = "roles")
private Set<Users> users = new HashSet<>(); @ManyToMany(cascade = CascadeType.PERSIST,fetch = FetchType.EAGER)
@JoinTable(name = "t_roles_menu",joinColumns = @JoinColumn(name = "role_id"),inverseJoinColumns = @JoinColumn(name = "menu_id"))
private Set<Menu> menus = new HashSet<>(); @Override
public String toString() {
return "Roles{" +
"roleid=" + roleId +
", roleName='" + roleName + '\'' +
", note='" + note + '\'' +
'}';
}
}

3.多对多 @ManyToMany

import lombok.Getter;
import lombok.Setter; import javax.persistence.*;
import java.util.HashSet;
import java.util.Set; /**
* @Author: GWL
* @Description: 角色表 与用户表一对多,角色表与菜单表多对多
* @Date: Create in 19:06 2019/5/8
*/
@Entity
@Table(name="t_roles")
@Getter
@Setter
public class Roles { @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "role_id")
private int roleId; @Column(name = "role_name")
private String roleName; @Column(name = "note")
private String note;
@ManyToMany(cascade = CascadeType.PERSIST,fetch = FetchType.EAGER)
@JoinTable(name = "t_roles_menu",joinColumns = @JoinColumn(name = "role_id"),inverseJoinColumns = @JoinColumn(name = "menu_id"))
private Set<Menu> menus = new HashSet<>(); @Override
public String toString() {
return "Roles{" +
"roleid=" + roleId +
", roleName='" + roleName + '\'' +
", note='" + note + '\'' +
'}';
}
}
import lombok.Data;

import javax.persistence.*;
import java.util.HashSet;
import java.util.Set; /**
* @Author: GWL
* @Description: 多对多 菜单表与角色表
* @Date: Create in 18:47 2019/5/9
*/
@Entity
@Table(name = "t_menu")
@Data
public class Menu { @Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "menu_id")
private int menuId; @Column(name = "menu_name")
private String menuName; @Column(name = "menu_url")
private String menuUrl; @Column(name = "menu_fid")
private int fatherId; @ManyToMany(mappedBy = "menus")
Set<Roles> roles = new HashSet<>(); }

有兴趣的朋友可以查看本人spring-boot-jpa GitHub项目

spring boot jpa 多表关联 @OneToOne @OneToMany @ManyToOne@ManyToMany的更多相关文章

  1. Spring Boot JPA中关联表的使用

    文章目录 添加依赖 构建Entity 构建Repository 构建初始数据 测试 Spring Boot JPA中关联表的使用 本文中,我们会将会通过一个Book和Category的关联关系,来讲解 ...

  2. Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题

      (转载)Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题   这几天在用spring boot开发项目, 在开发的过程中遇到一个问题hibernate在执 ...

  3. Spring Boot Jpa 表名小写转大写

    今天在使用SpringBoot整合Hibernate后创建表,表名为小写,而在linux下,mysql的表名是区分大小写的,因此在我的数据表中,就出现了两个一样的表 act_id_user 和  AC ...

  4. Spring Boot(五):Spring Boot Jpa 的使用

    在上篇文章Spring Boot(二):Web 综合开发中简单介绍了一下 Spring Boot Jpa 的基础性使用,这篇文章将更加全面的介绍 Spring Boot Jpa 常见用法以及注意事项. ...

  5. Spring Boot Jpa 的使用

    Spring Boot Jpa 介绍 首先了解 Jpa 是什么? Jpa (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范.它为 Java 开发人员提供了一种 ...

  6. (转)Spring Boot(五):Spring Boot Jpa 的使用

    http://www.ityouknow.com/springboot/2016/08/20/spring-boot-jpa.html 在上篇文章Spring Boot(二):Web 综合开发中简单介 ...

  7. Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例

    Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例 一.快速上手 1,配置文件 (1)pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 ...

  8. spring boot JPA中实体类常用注解

    spring boot jpa中的注解很多,参数也比较多.没必要全部记住,但是经常查看官方文档也比较麻烦,记录一下一些常用的注解.通过一些具体的例子来帮助记忆. @Entity @Table(name ...

  9. Spring boot Jpa添加对象字段使用数据库默认值

    Spring boot Jpa添加对象字段使用数据库默认值 jpa做持久层框架,项目中数据库字段有默认值和非空约束,这样在保存对象是必须保存一个完整的对象,但在开发中我们往往只是先保存部分特殊的字段其 ...

随机推荐

  1. jQuery选择器中空格的问题再探究

    jQuery选择器的空格问题,看似很小,但是差之毫厘谬以千里,让人很是恼火,<锋利的jQuery>书中有个经典的例子,我这里也拷贝下来,再加点自己的想法 <html> < ...

  2. Zookeeper 集群的安装及高可用性验证已完成!

    安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.3.5.tar.gz Java 环境 Zookeeper 和 Kafka 的运行都需要 Java 环境,Kafka 默认 ...

  3. 自动化监控Zabbix之主机自动发现

    创建思路 首先说下自动发现强大的功能,它到底可以帮助我们完成什么工作: 快速发现并添加主机 简单的管理 随着环境的改变而快速搭建监控系统 自动发现基于网络发现功能,而网络发现又基于以下信息: IP地址 ...

  4. EntityFramework 知识点与sql优化汇总

    一.EntityFramework modelBuilder.Entity<Domain.UseOilPlanDetail>().HasRequired(x => x.MainOil ...

  5. ArrayList的几种初始化方法

    1.使用Arrays.asList方法 ArrayList<Object> obj = new ArrayList<Object>(Arrays.asList(Object o ...

  6. egrep 正则

    首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.awk .sed 都支 ...

  7. js的width函数

    参考: (1)https://blog.csdn.net/chen__jinfei/article/details/6520678 (2)https://developer.mozilla.org/e ...

  8. Qt 【关于控件样式,鼠标进入、离开、点击】

    比如举以下这个例子: QPushButton * okBtn; okBtn->setstylesheet("QPushButton{border-image:url(:/image/h ...

  9. jdk环境配置-windows 10

    近期由于云服务器到期,重新买了一个云服务器,这里顺便把jdk环境配置步骤做一个记录 1.下载自己需要的jdk 我这里是下的免安装版的  2.计算机(此电脑)->属性->高级系统设置-> ...

  10. word文档操作

    1.如何把word文档修改的地方标记出来   :  https://zhidao.baidu.com/question/73648149.html 2.word 的几种 视图:https://zhid ...