常用的JPA标记 hibernate annotation 参考
Table
Table用来定义entity主表的name,catalog,schema等属性。 元数据属性说明:
? name: 表名
? catalog: 对应关系数据库中的? schema:对应关系数据库中的
catalog
schema
UniqueConstraint数组,指定需
? UniqueConstraints:定义一个
要建唯一约束的列
@Entity
@Table(name=\
public class Customer { ... }
SecondaryTable
一个entity class可以映射到多表,SecondaryTable用来定义单个从表的名字,主键名字等属性。 元数据属性说明:
? name: 表名
? catalog: 对应关系数据库中的? schema:对应关系数据库中的
catalog
schema
? pkJoin: 定义一个PrimaryKeyJoinColumn数组,指定从表的主键
列
? UniqueConstraints:定义一个
UniqueConstraint数组,指定需
要建唯一约束的列
下面的代码说明Customer类映射到两个表,主表名是CUSTOMER,从表名是CUST_DETAIL,从表的主键列和主表的主键列类型相同,列名为CUST_ID。
@Entity
@Table(name=\
@SecondaryTable(name=\Column(name=\
public class Customer { ... }
SecondaryTables
当一个entity class映射到一个主表和多个从表时,用SecondaryTables来定义各个从表的属性。 元数据属性说明:
? value: 定义一个
SecondaryTable数组,指定每个从表的属性。
@Table(name = \
@SecondaryTables( value = {
@SecondaryTable(name = \{ @PrimaryKeyJoinColumn(name = \referencedColumnName = \
@SecondaryTable(name = \{ @PrimaryKeyJoinColumn(name = \referencedColumnName = \
public class Customer {}
UniqueConstraint
UniqueConstraint定义在Table或SecondaryTable元数据里,用来指定建表时需要建唯一约束的列。 元数据属性说明:
? columnNames:定义一个字符串数组,指定要建唯一约束的列名。
@Entity
@Table(name=\
uniqueConstraints={@UniqueConstraint(columnNames={\\ )
public class Employee { ... }
Column
Column元数据定义了映射到数据库的列的所有属性:列名,是否唯一,是否允许为空,是否允许更新等。 元数据属性说明:
? name:列名。 ? unique: 是否唯一 ? nullable: 是否允许为空 ? insertable: 是否允许插入 ? updatable: 是否允许更新
? columnDefinition: 定义建表时创建此列的
DDL
? secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),
该属性定义该列所在从表的名字。
public class Person {
@Column(name = %unique = true, nullable = false, updatable = true)
private String name;
@Column(name = \secondaryTable=\
private byte[] picture;
JoinColumn
如果在entity class的field上定义了关系(one2one或one2many等),我们通过JoinColumn来定义关系的属性。JoinColumn的大部分属性和Column类似。 元数据属性说明:
? name:列名。
? referencedColumnName:该列指向列的列名(建表时该列作为外键列
指向关系另一端的指定列)
? unique: 是否唯一 ? nullable: 是否允许为空 ? insertable: 是否允许插入 ? updatable: 是否允许更新
? columnDefinition: 定义建表时创建此列的
DDL
? secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),
该属性定义该列所在从表的名字。
下面的代码说明Custom和Order是一对一关系。在Order对应的映射表建一个名为CUST_ID的列,该列作为外键指向Custom对应表中名为ID的列。