Hibernate学习(映射持久化类)
第一个实体类的映射
@Entity
@Table(name = "t_item")
public class Item {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
public Long getId() {
return id;
}
}
这是一个最基础的实体类,使用@Entity 注解标记为"可持久化",并且带有一个用于数据库标识符属性@Id映射.@Table 注解重写JPA 默认表名为"t_item"
配置键生成器
当保存实体实例时,通常你会希望系统生成一个主键值,因此你会在@Id旁边编写@GeneratedValue注解,JPA使用javax.persistence.GenerationType枚举标准化集中值生成策略,可以使用@GeneratedValue(strategy =...)进行选择:
- GenerationType.AUTO Hibernate会选择一种合适的策略,询问你已配置数据库的那种SQL方言是最佳的,默认值.
- GenerationType.SEQUENCE HIbernate 预期(并且会创建,如果使用工具的话)你的数据库中存在一个名为HIBERNATE_SEQUENCE的序列,该序列会在每个INSERT之前被单独调用,已生成顺序数字值.
- GenerationType.IDENTITY Hibernate预期(并且会在表DDL中创建)一个特殊的自增长主键列,该列会在数据库INSERT时自动生成一个数字值.
- GenerationType.TABLE HIbernate将在您的数据库架构中使用一个额外的表,这个表会保存下一个数字主键值,每行对应一个实体类,在INSERT之前.该表将被读取并做相应的更新.