zoukankan      html  css  js  c++  java
  • 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注解关联的实体类类型

  • 相关阅读:
    js对象,字符串 互相 转换
    JS 比较两个数组是否相等 是否拥有相同元素
    node 中 安装 yarn
    vue2.0 子组件 父组件之间的传值
    卷积神经网络 使用 Python 实现一个对手写数字进行分类的简单网络
    Tensorflow卷积实现原理+手写python代码实现卷积
    深度学习基础 (十五)--padding,卷积步长与简单卷积神经网络示例
    直白介绍卷积神经网络(CNN)
    直观理解深度学习卷积部分
    理解深度学习中的卷积
  • 原文地址:https://www.cnblogs.com/maosonglin/p/9832696.html
Copyright © 2011-2022 走看看