@ SecondaryTable用于定义从表,它的定义如以下代码所示:
@Target({TYPE}) @Retention(RUNTIME)
public @interface SecondaryTable {
String name();
String catalog() default "";
String schema() default "";
PrimaryKeyJoinColumn[] pkJoinColumns() default {};
UniqueConstraint[] uniqueConstraints() default {};
}
它的定义与@Table的定义类似,所不同的是,它增加了pkJoinColumns属性。pkJoinColumns属性的作用是从表的哪个字段与主表关联。
在本例中,tb_contract表中的“employee_id”与主表关联,则定义的代码如下所示:
@SecondaryTable(
name = "tb_contract",
pkJoinColumns = { @PrimaryKeyJoinColumn(name = "employee_id") }
)
public class EmployeeEO implements Serializable {
……中间代码省略
}
若从表有多个主键与主表关联时,例如有个字段“employee_type”可以写成以下代码所示:
@SecondaryTable(
name = "tb_contract",
pkJoinColumns = {
@PrimaryKeyJoinColumn(name = "employee_id"),
@PrimaryKeyJoinColumn(name = "employee_type"),
}
)
public class EmployeeEO implements Serializable {
……中间代码省略
}