Hibernate框架整合JPA注解基础事件
1.JPA注解
Entity
@javax.persistence.Entity(name=”xxx”)
name指定实体Bean的名称,默认值为 bean class 的非限定类名,select o from xxx o where o.id=?1
Table
@javax.persistence.Table(catalog=”xx”,name=”xx”,schema=”xx”,uniqueConstraints={UniqueConstraint(columnNames={“xx”,”xx”})})
name:指定表的名称
catalog:指定数据库名称
schema:指定数据库的用户名
uniqueConstraints:指定唯一性字段约束,如为personid 和name 字段指定唯一性约束
uniqueConstraints={ @UniqueConstraint(columnNames={“personid”, “name”})}
@Table标记表示所映射表的属性,该注释的属性定义如下:
@Target({TYPE})
@Retention(RUNTIME)
public @interface Table {
String name() default "";
String catalog() default "";
String schema() default "";
UniqueConstraint[] uniqueConstraints() default {};
}
在使用此@Table标记时,需要注意以下几个问题。
此标记需要标注在类名前,不能标注在方法或属性前。
name属性表示实体所对应表的名称,默认表名为实体的名称。
catalog和schema属性表示实体指定的目录名或是数据库名,这根据不同的数据库类型有所不同。
uniqueConstraints属性表示该实体所关联的唯一约束条件,一个实体可以有多个唯一约束条件,默认没有约束条件。
若使用uniqueConstraints标记时,需要配合标记UniqueConstraint标记来使用。
Id
@javax.persistence.Id()
映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.
GeneratedValue
@javax.persistence.GeneratedValue(generator=”xxx”,strategy=GenerationType.AUTO)
strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE 和 TABLE 4种
分别表示让ORM框架自动选择,根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生成主键,默认为AUTO
generator:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定uuid等主键生成方式.
例程:使用UUID作为数据库的主键类型
Hibernate UUID
@Id
@GeneratedValue(generator="s