使用2个ID指向两个不同表的类的JPA 2.0批注是通过@SecondaryTable
和@JoinColumn
来实现的。
@SecondaryTable
是一个JPA注解,用于指定一个实体类对应的第二个表。它可以在实体类上的注解中使用,用于指定第二个表的名称、连接列以及连接条件等信息。
@JoinColumn
是一个JPA注解,用于指定实体类中的一个属性与另一个表的连接列之间的关系。它可以在实体类的属性上的注解中使用,用于指定连接列的名称、是否可空、是否唯一等信息。
下面是一个示例代码,演示了如何使用2个ID指向两个不同表的类的JPA 2.0批注:
@Entity
@Table(name = "table1")
@SecondaryTable(name = "table2", pkJoinColumns = @PrimaryKeyJoinColumn(name = "id2"))
public class MyClass {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id1")
private Long id1;
@Id
@Column(name = "id2", table = "table2")
private Long id2;
// 其他属性和方法
}
在上面的示例中,MyClass
类使用了@SecondaryTable
注解来指定了第二个表的名称为"table2",并通过pkJoinColumns
属性指定了连接列的名称为"id2"。
同时,MyClass
类中的id1
属性使用了@Id
和@GeneratedValue
注解来指定了主键,并通过@Column
注解指定了对应的列名为"id1"。
id2
属性也使用了@Id
和@Column
注解来指定了主键,并通过@Column
注解的table
属性指定了对应的表名为"table2"。
这样,MyClass
类就可以通过两个ID分别指向两个不同的表。
关于JPA 2.0的更多信息,可以参考腾讯云的云数据库MySQL文档:JPA 2.0
领取专属 10元无门槛券
手把手带您无忧上云