jpa多表联查动态_SpringDataJpa学习(3)——SpringDataJpa的多表映射和动态查询

写在前面

一对多的配置

这里我们先定义一个新的实体类:

@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")

private String lkmPhone;

@Column(name = "lkm_mobile")

private String lkmMobile;

@Column(name = "lkm_email")

private String lkmEmail;

@Column(name = "lkm_position")

private String lkmPosition;

@Column(name = "lkm_memo")

private String lkmMemo;

}

之后我们在一的那方配置一下:

/**

* 1.声明关系 @OneToMany 配置一对多关系

* 2.配置外键 @JoinColumn 配置外键 name:外键字段名称 referencedColumnName:参照的主表的主键字段名称

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

*

* mappedBy:对方配置关系的属性名称,放弃外键维护权

* cascade:配置级联(可以配置到设置多表的映射关系的注解上)

* CascadeType.ALL:所有 CascadeType.MERGE:更新 CascadeType.PERSIST 保存,CascadeType.REMOVE 删除

*/

// @OneToMany(targetEntity = LinkMan.class)

// @JoinColumn(name = "lkm_cust_id",referencedColumnName = "cust_id")

/**

* fetch:配置关联对象的加载方式

* EAGER: 立即加载

* LAZY: 延迟加载

*/

@OneToMany(mappedBy = "customer",cascade = CascadeType.ALL,fetch = FetchType.EAGER)

private Set linkMen = new HashSet<>();

在多的那方配置一下:

/**

* 配置联系人到客户的多对一关系

* 使用注解的形式配置多对一关系

* 1.配置表关系 @ManyToOne 配置多对一关系

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

* @JoinColumn(外键名称)

*/

@ManyToOne(targetEntity = Customer.class,fetch = FetchType.LAZY)

@JoinColumn(name = "lkm_cust_id",ref

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值