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

  • 相关阅读:
    HDU-2222 Keywords Search(AC自动机)
    HDU-2647 Reward(拓扑排序)
    HDU-2896 病毒侵袭(AC自动机)
    UESTC-1057 秋实大哥与花(线段树+成段加减+区间求和)
    CSU-1120 病毒(最长递增公共子序列)
    记忆化搜索
    区间动态规划 矩阵连乘 Medium
    34枚金币时间管理法
    摄影基础1
    学习法则 讲
  • 原文地址:https://www.cnblogs.com/maosonglin/p/9832696.html
Copyright © 2020-2023  润新知