@Table
声明此对象映射到数据库的数据表,通过它可以为实体指定表(table)。
属性:
-
@Id
标注用于声明一个实体类的属性映射为数据库的主键列。
- 该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上。
- 也可置于属性的get方法前。
@GeneratedValue
用于标注主键的生成策略,通过strategy属性指定。默认情况下,jpa自动选中一个最适合底层数据库的主键生成策略:SQLServer对应identity,MySQL对应autoincrement。
javax.persistence.GenerationType中定义了以下几种可供选择的策略:
- IDENTITY:采用数据库id自增长的方式来自增主键字段,Oracle不支持这种方式。
- AUTO:JPA自动选择合适的策略,是默认选项。
- SEQUENCE:通过序列产生主键,通过@SequenceGenerator注解指定序列名,MySQL不支持这种方式。
- TABLE:通过产生主键,框架接由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。