Spring Data JPA 实现多表操作,zookeeper监听原理

这篇博客介绍了如何在Spring Data JPA中实现多表操作,包括一对一和多对多关系的配置及实体类映射。通过示例展示了如何在实体类中设置关系,以及在数据库中的映射。此外,还提到了Zookeeper的监听原理,但未详细展开。最后,文章提供了一些多表操作的测试案例,如级联操作和删除策略。
摘要由CSDN通过智能技术生成

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

实体类关系建立和配置映射:

在实体类中描述出两个实体的关系,由于客户是少的一方,它应该包含多个联系人,所以实体类要体现出客户中有多个联系人的信息,代码如下:.

/**

  • 客户的实体类

  • 1.实体类与表的映射关系

  • @Entity、@Table

  • 2.类中属性与表中字段的映射关系

  • @Id

  • @GeneratedValue

  • @Column

  • 所有的注解都是使用JPA的规范提供的注解,

  • 所以在导入注解包的时候,一定要导入javax.persistence下的

*/

@Entity //声明实体类

@Table(name=“cst_customer”) //建立实体类和表的映射关系

public class Customer {

@Id//声明当前私有属性为主键

@GeneratedValue(strategy=GenerationType.IDENTITY) //配置主键的生成策略

@Column(name=“cust_id”) //指定和表中cust_id字段的映射关系

private Long custId;

@Column(name=“cust_name”) //指定和表中cust_name字段的映射关系

private String custName;

@Column(name=“cust_source”)//指定和表中cust_source字段的映射关系

private String custSource;

@Column(name=“cust_industry”)//指定和表中cust_industry字段的映射关系

private String custIndustry;

@Column(name=“cust_level”)//指定和表中cust_level字段的映射关系

private String custLevel;

@Column(name=“cust_address”)//指定和表中cust_address字段的映射关系

private String custAddress;

@Column(name=“cust_phone”)//指定和表中cust_phone字段的映射关系

private String custPhone;

//配置客户与联系人的映射关系(一对多关系)

/**

  • 使用注解的形式配置多表关系

  • 1.声明关系

  • @OneToMany:配置一对多关系

  • targetEntity:对方对象的字节码对象

  • 2.配置外键(中间表)

  • @JoinColumn:配置外键

  • name:外键字段名称

  • referencedColumnName:参照的主表的主键名称

  • 在客户实体类上(一的一方)添加了外键配置,所以对客户而言,也具备了维护外键的作用

*/

@OneToMany(targetEntity = LinkMan.class)

@JoinColumn(name = “lkm_cust_id”,referencedColumnName = “cust_id”)

/**

  • Get、Set、toString

*/

}

由于联系人是多的一方,在实体类中要体现出,每个联系人只能对应一个客户,代码如下:

/**

  • @Author: Ly

  • @Date: 2020-12-01 08:31

  • 联系人的实体类(数据模型)

*/

@Entity //声明实体类

@Table(name =“cst_linkman”) //建立实体类和表的映射关系

public class LinkMan {

@Id //声明当前私有属性为主键

@GeneratedValue(strategy = GenerationType.IDENTITY) //配置主键的生成策略

@Column(name = “lkm_id”)

private Long lkmId; //联系人编号(主键)

@Column(name = “lkm_name”)

private String lkmName;//联系人姓名

@Column(name = “lkm_gender”)

private String lkmGender;//联系人性别

@Column(name = “lkm_phone”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值