(1)ex-1:
一个User实体类中:
1. @Id : 用于声明一个实体类的属性映射为数据库的主键列;
2. @GeneratedValue:
一般mysql数据库自增主键会设置为 : @GeneratedValue(strategy = GenerationType.IDENTITY)
目的是为一个实体赋予一个唯一标识的 主键 , 提供了主键的生成策略。
@GeneratedValue 其中有 strategy 和 generator 两个属性:
A. generator属性:其值是一个字符串,默认为"";
B. strategy属性:
AUTO主键由程序控制, 是默认选项,不设置就是这个;
IDENTITY 主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式;
SEQUENCE 通过数据库的序列产生主键, MYSQL不支持;
Table 提供特定的数据库产生主键, 该方式更有利于数据库的移植.
3. @Table注解表明实体类对应的数据库表.
(2)ex-2:
1. @Entity :注明这是一个实体类,不写默认为类名。
2. 所有的实体类都要有主键:
@Id表示这是主键;
主键自动生成 + 生成策略:
3. @Column: 可以定制属性 对应的 数据表中 字段的名称,nullable表示该字段为空。
4. @Transient : 表示在生成数据库中的表时,该属性被忽略,即不生成对应的字段。
(3)JPA Sql 支持的命名规则-汇总: