Entity实体

Annotation

@Entity

1、每个Entity必须有无参数的构造函数(no-arg constructor

2、每个Entity必须有primary key

3、Entity的class必须不能定义为final类型的

4、通过括号中的name属性定义实体名,注意:实体名不是数据库中的表名

@Entity(name="school")
public class Student {
     
    // fields, getters and setters
     
}

@Id

定义一张数据表的主键

若为自动生成,可选择4中策略:AUTO, TABLE, SEQUENCE, or IDENTITY.

如果定义为AUTO,JPA会自动选择任何一个策略来生成主键

@Table

定义数据库中数据表的名称:

也可定义schema名称:

@Column

规定数据表中每一列(每一个字段)的详情

可取值:name, length, nullable, unique

@Transient

使得数据字段为短暂存在的(非持久化)。也就是该数据字段不会存到数据表里。

@temporal

定义该数据字段为时间值。在JPA2.2,支持: java.time.LocalDate, java.time.LocalTime, java.time.LocalDateTime , java.time.OffsetTime, java.time.OffsetDateTime

@Enumerated

枚举。

如果我们要将枚举类中项目的序号保存在数据库中,则无需标出@Enumerated,如果我们要将枚举类中项目的字符串保存在数据库中,需要加上@Enumerated(EnumType.STRING)

最后更新于