Java/JPA@Entity @Table应用理解

@Entity说明这个class是实体类,且class名即数据库表中表名(orm规则),class字段名即表中的字段名如果想改变这种默认的orm规则,就要使用@Table来改变class名与数据库中表名的映射规则,@Column来改变class中字段名与db中表的字段名的映射规则。


@Entity
@Data
@Table(name="aa")
public class Datamaintain implements Serializable {

    @Id
    @Column(name = "id")
    @ApiModelProperty(value = "id")
    private String id;

    
    @Column(name = "create_time")
    @CreationTimestamp
    @ApiModelProperty(value = "创建时间")
    private Timestamp createTime;

    @Column(name = "update_time")
    @UpdateTimestamp
    @ApiModelProperty(value = "更新时间")
    private Timestamp updateTime;

}
  1. @Entity注释指名这是一个实体Bean,@Table注释指定了Entity所要映射带数据库表,其中@Table(name=“”)用来指定映射表的表名如果缺省@Table注释,系统默认采用类名作为映射表的表名。实体Bean的每个实例代表数据表中的一行数据,行中的一列对应实例中的一个属性。

  2. @Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息,属性如下:
    1. name:映射的列名。如:映射tbl_user表的name列,可以在name属性的上面或getName方法上面加入
    2. unique:是否唯一;

    3. nullable:是否允许为空;

    4. length:对于字符型列,length属性指定列的最大字符长度;

    5. insertable:是否允许插入;

    6. updatetable:是否允许更新;

    7. columnDefinition:定义建表时创建此列的DDL;

    8. secondaryTable:从表名。如果此列不建在主表上(默认是主表),该属性定义该列所在从表的名字。

  3. Id注释指定表的主键,它可以有多种生成方式:
    1. TABLE:容器指定用底层的数据表确保唯一;

    2. SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);

    3. IDENTITY:使用数据库的IDENTITY列莱保证唯一;

    4. AUTO:由容器挑选一个合适的方式来保证唯一;

    5. NONE:容器不负责主键的生成,由程序来完成。

  4. @ApiModelProperty表示对model属性的说明或者数据操作更改 

    1. value–字段说明 
    2. name–重写属性名字 
    3. dataType–重写属性类型 
    4. required–是否必填 
    5. example–举例说明 
    6. hidden–隐藏
  5. @CreationTimestamp使用该注解可以让Hibernate在插入时针对注解的属性对应的日期类型创建默认值。

  6.  @UpdateTimestamp使用该注解可以让Hibernate在更新时时针对注解的属性对应的日期类型创建默认值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值