@Entity 注解:
我们使用了@Entity注解来这标志着这个类作为一个实体bean Employee类,因此它必须有一个无参数的构造函数,总算是有保护的范围可见。
@Table 注解:
@Table注释允许指定的表将被用于保存该实体在数据库中的详细信息。
@Table注释提供了四个属性,允许覆盖表的名称,它的目录,它的架构,并执行对列的唯一约束在表中。现在,我们使用的是刚刚是EMPLOYEE表的名称。
@Id 和 @GeneratedValue 注解:
每个实体bean将有一个主键,注释在类的@Id注解。主键可以是单个字段或根据表结构的多个字段的组合。
默认情况下,@Id注解会自动确定要使用的最合适的主键生成策略,但可以通过应用@GeneratedValue注释,它接受两个参数,strategy和generator,不打算在这里讨论,只使用默认的默认键生成策略。让Hibernate确定要使用的generator类型使不同数据库之间代码的可移植性。
@Column 注解:
@Column批注用于指定的列到一个字段或属性将被映射的细节。可以使用列注释以下最常用的属性:
-
name属性允许将显式指定列的名称。
-
length 属性允许用于映射一个value尤其是对一个字符串值的列的大小。
-
nullable 属性允许该列被标记为NOT NULL生成架构时。
-
unique 属性允许被标记为只包含唯一值的列。
@Formula注解
使用案例:
- @Formula("(select a.birthday from Student a where a.id = id)")
- private Date studentBirthday;
该注解不会在数据表中生成,但是开发中会用得很多。