spring data jpa實體類映射配置


@Entity:用來標志實體類,知名這是一個和數據庫表映射的實體類

@Id注解指明這個屬性映射為數據庫的主鍵

@GeneratedValue注解默認使用主鍵生成方式為自增,hibernate會自動生成一個名為HIBERNATE_SEQUENCE的序列。

@Table實體類映射表表名稱,如果不加這個注解會默認使用類名

@Column使用來映射屬性名和字段名,不注解的時候hibernate會自動根據屬性名字生成數據表的字段名。如屬性name映射生成字段NAME;多字母屬性如testName會自動映射為TEST_NAME。表明映射規則也是如此。

 1 @Entity
 2 @Table(name="datasource")
 3 public class Source implements IdGeneratorable{
 4 
 5     @Id
 6     @Column(length=20)
 7     private String id;
 8     
 9     private String name;
10     
11     private String chinese;
12     
13     private String jdbcDirver;
14     
15     private String driverClass;
16     
17     private String url;
18     
19     @Column(name="u_name")
20     private String username;
21     
22     @Column(name="pwd")
23     private String password;
24     
25     private String charset;
26     
27     private String sortRule;
28     
29     private String databaseName;
30     
31     private String addTime;
32     
33     private Integer state = Constant.ACTIVATE_SATE;
34     
35     @OneToOne(targetEntity=UploadFile.class,fetch=FetchType.EAGER)
36     @JoinColumn(name="file_id",referencedColumnName="id")
37     private UploadFile association;
38 
39     @OneToMany(targetEntity=DataTable.class,fetch=FetchType.LAZY,mappedBy="source")
40     @JsonIgnore
41     private List<DataTable> tables;
42  //省略getter和setter方法  
43 }

 1 @Entity
 2 public class DataTable implements IdGeneratorable{
 3 
 4     @Id
 5     private String id;
 6     
 7     private String name;
 8     
 9     private String chinese;
10     
11     @ManyToOne(targetEntity=Source.class,fetch=FetchType.LAZY)
12     @JoinColumn(name="data_source_id",referencedColumnName="id")
13     @JsonIgnore
14     private Source source;
15     
16     @OneToMany(targetEntity=TableColumn.class,fetch=FetchType.LAZY,mappedBy="dataTable")
17     @JsonIgnore
18     private List<TableColumn> columns;
19     
20     private Date addTime;
}

 

 

關聯配置:

@OneToOne 配置一對一關聯,屬性targetEntity指定關聯的對象的類型 。

@JoinColumn指定該實體類對應的表中引用的表的外鍵,name屬性指定外鍵名稱,referencedColumnName指定應用表中的字段名稱

@OneToMany注解“一對多”關系中‘一’方的實體類屬性(該屬性是一個集合對象),targetEntity注解關聯的實體類類型,mappedBy注解另一方實體類中本實體類的屬性名稱

@ManyToOne注解“一對多”關系中‘多’方的實體類屬性(該屬性是單個對象),targetEntity注解關聯的實體類類型

 


免責聲明!

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



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