@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;
}
-
@Entity注释指名这是一个实体Bean,@Table注释指定了Entity所要映射带数据库表,其中@Table(name=“”)用来指定映射表的表名如果缺省@Table注释,系统默认采用类名作为映射表的表名。实体Bean的每个实例代表数据表中的一行数据,行中的一列对应实例中的一个属性。
- @Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息,属性如下:
- name:映射的列名。如:映射tbl_user表的name列,可以在name属性的上面或getName方法上面加入
-
unique:是否唯一;
-
nullable:是否允许为空;
-
length:对于字符型列,length属性指定列的最大字符长度;
-
insertable:是否允许插入;
-
updatetable:是否允许更新;
-
columnDefinition:定义建表时创建此列的DDL;
-
secondaryTable:从表名。如果此列不建在主表上(默认是主表),该属性定义该列所在从表的名字。
- Id注释指定表的主键,它可以有多种生成方式:
-
TABLE:容器指定用底层的数据表确保唯一;
-
SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);
-
IDENTITY:使用数据库的IDENTITY列莱保证唯一;
-
AUTO:由容器挑选一个合适的方式来保证唯一;
-
NONE:容器不负责主键的生成,由程序来完成。
-
-
@ApiModelProperty表示对model属性的说明或者数据操作更改
- value–字段说明
- name–重写属性名字
- dataType–重写属性类型
- required–是否必填
- example–举例说明
- hidden–隐藏
-
@CreationTimestamp使用该注解可以让Hibernate在插入时针对注解的属性对应的日期类型创建默认值。
-
@UpdateTimestamp使用该注解可以让Hibernate在更新时时针对注解的属性对应的日期类型创建默认值。