IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA環境搭建,JPA註解@ManyToOne使用詳情;JPA外鍵設

1、數據庫原型數據庫

       

數據庫模型如圖所示,而如今須要根據數據庫模型,創建對應的實體類,這在項目重構老數據庫,採用新的框架重構上應該是比較常見的。框架

數據庫腳本以下:ide

 1 CREATE TABLE `bomsub` (
 2   `subId` varchar(40) NOT NULL COMMENT '子類型ID',
 3   `mainId` varchar(40) NOT NULL COMMENT '主類型ID',
 4   `subName` varchar(40) NOT NULL COMMENT '子類型名稱',
 5   `engName` varchar(255) NOT NULL,
 6   `deleted` int(1) NOT NULL DEFAULT '1' COMMENT '當前是否刪除',
 7   PRIMARY KEY (`subId`),
 8   KEY `FK_Reference_47` (`mainId`),
 9   CONSTRAINT `FK_Reference_47` FOREIGN KEY (`mainId`) REFERENCES `bommain` (`mainId`)
10 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Bom表的小類';
View Code

實體類構成:ui

 1 @Entity
 2 @Table(name = "bomsub")
 3 public class BomSub extends SuperEntity {
 4 
 5 
 6     /**
 7      * 子類型ID
 8      */
 9     @Id
10     @GenericGenerator(strategy = "uuid", name = "subId")
11     @GeneratedValue(generator = "subId")
12     @Column(length = 40)
13     public String subId;
14 
15     /**
16      * 主類型ID
17      */
18     @ManyToOne(cascade = {CascadeType.ALL})
19     @JoinColumn(name = "mainId", foreignKey = @ForeignKey(name = "FK_Reference_47"), columnDefinition = "varchar(40) NOT NULL COMMENT '主類型ID'")
20     public BomMain bomMain;
21 
22     /**
23      * 子類型名稱
24      */
25     @Column(nullable = false, length = 40)
26     public String subName;
27 
28     /**
29      * 英文名稱
30      */
31     @Column(nullable = false)
32     public String engName;
33 
34     /**
35      * 全部字段的是否存在
36      */
37     @Column(nullable = false, columnDefinition = "int(1) default 1 COMMENT '當前是否刪除'")
38     public Integer deleted;
39 
40 
41 }
View Code

主要部分:spa

/**
* 主類型ID
*/
@ManyToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "mainId", foreignKey = @ForeignKey(name = "FK_Reference_47"), columnDefinition = "varchar(40) NOT NULL COMMENT '主類型ID'")
public BomMain bomMain;

@ManyToOne代表表的關係是多對一,就是子表bomsub的mainId,是一個,可是對應着多個bomMain的Id3d

@JoinColumn 代表兩個表是如何關聯的,關聯須要的條件code

       內部屬性  name : 關聯兩個表外鍵的名稱blog

                     foreignKey :外鍵的設置,這裏對其名稱進行設置,就會將索引的名稱設置爲這裏名字的設置                 索引

             columnDefinition :DDL拼接,這裏指的是這個屬性的SQL語句的設置generator

當這個表生成的時候就會把剩下的部分在JPA模式下自動生成設置的SQL語句。

相關文章
相關標籤/搜索