JPA常用注解说明

@Id,@GeneratedValue

这两个是一起使用的。 @Id 是主键标识, @GeneratedValue 用于指定规则。
使用样例:

import javax.persistence.*

@Entity
@Table(name = "t_users")
data class User(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val f_id: Int,
val f_userName: String,
val f_cellPhone: String? = null)
规则 说明
TABLE 使用一个特定的数据库表格来保存主键。
SEQUENCE 根据底层数据库的序列来生成主键,条件是数据库支持序列。
IDENTITY 主键由数据库自动生成(主要是自动增长型)
AUTO 主键由程序控制,默认的配置。

@Table

来改变class名与数据库中表名的映射规则,catalog 数据库,
这里不需要设置 catalog,因为 datasource 里面已经有了,这里设置容易出问题
@Table(name = “users”, catalog=”testDb”)

@Column

定义了将成员属性映射到关系表中的哪一列和该列的结构信息,属性如下

  1. name:映射的列名。如:映射tbl_user表的name列,可以在name属性的上面或getName方法上面加入;
  2. unique:是否唯一;
  3. nullable:是否允许为空;
  4. length:对于字符型列,length属性指定列的最大字符长度;
  5. insertable:是否允许插入;
  6. updatetable:是否允许更新;
  7. columnDefinition:定义建表时创建此列的DDL;
  8. secondaryTable:从表名。如果此列不建在主表上(默认是主表),该属性定义该列所在从表的名字。
@Column(name = "自定义字段名",length = "自定义长度",nullable = "是否可以空",unique = "是否唯一",columnDefinition = "自定义该字段的类型和长度")

@Entity

标识这个实体类是一个JPA实体,并且使用默认的orm规则
class名即数据库表中表名,class字段名即表中的字段名

@get: NotBlank

该字段不能为空