多对多
1 2 3 4 5 6
| @ManyToMany() @JoinTable(name="t_role_rights",joinColumns={ @JoinColumn(name="right_id")}, inverseJoinColumns={ @JoinColumn(name= "role_id") }) public Set<Role> getRoles() { return roles; }
|
因为多对多之间会通过一张中间表来维护两表直接的关系,所以通过 JoinTable
这个注解来声明,name
就是指定了中间表的名字,JoinColumns
是一个@JoinColumn
类型的数组,表示的是我这方在对方中的外键名称,我方是Right,所以在对方外键的名称就是 right_id,inverseJoinColumns
也是一个@JoinColumn
类型的数组,表示的是对方在我这放中的外键名称,对方是Role,所以在我方外键的名称就是 role_id
一对多 和 多对一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
@OneToMany(mappedBy = "customer",cascade = CascadeType.ALL) private Set<LinkMan> linkMans = new HashSet<>();
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
@ManyToOne(targetEntity = Customer.class,fetch = FetchType.LAZY) @JoinColumn(name = "lkm_cust_id",referencedColumnName = "cust_id") private Customer customer;
|