springboot JPA 聯合主鍵


一、聯合主鍵類JPA規范

1、必須提供一個public的無參數構造函數;

2、必須實現序列化接口;

3、必須重寫hashCode()和equals()這兩個方法。這兩個方法應該采用復合主鍵的字段作為判斷這個對象是否相等的;

4、聯合主鍵類的類名結尾一般要加上PK兩個字母代表一個主鍵類,不是要求而是一種命名風格;

5、getter、setter etc 

 1 package com.DotSDot.pojo;
 2 
 3 import java.io.Serializable;
 4 import java.util.Objects;
 5 
 6 /**
 7  * @author Predator
 8  * @create 2020-10-05-10:18 AM
 9  */
10 public class RolePermissionInformationPK implements Serializable {
11     private String role_id;
12     private String permission_id;
13 
14     public RolePermissionInformationPK() {
15     }
16 
17     public RolePermissionInformationPK(String role_id, String permission_id) {
18         this.role_id = role_id;
19         this.permission_id = permission_id;
20     }
21 
22     @Override
23     public boolean equals(Object o) {
24         if (this == o) return true;
25         if (o == null || getClass() != o.getClass()) return false;
26         RolePermissionInformationPK that = (RolePermissionInformationPK) o;
27         return Objects.equals(role_id, that.role_id) &&
28                 Objects.equals(permission_id, that.permission_id);
29     }
30 
31     @Override
32     public int hashCode() {
33         return Objects.hash(role_id, permission_id);
34     }
35 
36     public String getRole_id() {
37         return role_id;
38     }
39 
40     public void setRole_id(String role_id) {
41         this.role_id = role_id;
42     }
43 
44     public String getPermission_id() {
45         return permission_id;
46     }
47 
48     public void setPermission_id(String permission_id) {
49         this.permission_id = permission_id;
50     }
51 }

二、實體類

1、@IdClass(PK.class)

2、@Id

 1 package com.DotSDot.pojo;
 2 
 3 import javax.persistence.*;
 4 import java.io.Serializable;
 5 
 6 /**
 7  * @author Predator
 8  * @create 2020-10-05-8:46 AM
 9  */
10 @Entity
11 @Table(name = "tb_role_permissioninformation")
12 @IdClass(RolePermissionInformationPK.class)
13 public class RolePermissionInformation implements Serializable {
14     @Id
15     private String role_id;
16     @Id
17     private String permission_id;
18 
19     public String getRole_id() {
20         return role_id;
21     }
22 
23     public void setRole_id(String role_id) {
24         this.role_id = role_id;
25     }
26 
27     public String getPermission_id() {
28         return permission_id;
29     }
30 
31     public void setPermission_id(String permission_id) {
32         this.permission_id = permission_id;
33     }
34 
35     public RolePermissionInformation() {
36     }
37 
38     public RolePermissionInformation(String role_id, String permission_id) {
39         this.role_id = role_id;
40         this.permission_id = permission_id;
41     }
42 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM