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注解关联的实体类类型

 

posted @ 2018-10-22 20:51  悦尔  阅读(12505)  评论(0编辑  收藏  举报