Java 休眠两个表和一个对象
我有这样的情况:Java 休眠两个表和一个对象,java,hibernate,orm,jpa,Java,Hibernate,Orm,Jpa,我有这样的情况: Table1: tab_id field11 field12 Table2 id tab_id field21 field22 我必须在这两个表上创建一个对象,例如: object: @Id tabId @Colummn(name="field11") field11 @Colummn(name="field12") field12 @Colummn(name="field21") field21 当我更新field21时,table2应该更新此字段,但ta
Table1:
tab_id
field11
field12
Table2
id
tab_id
field21
field22
我必须在这两个表上创建一个对象,例如:
object:
@Id
tabId
@Colummn(name="field11")
field11
@Colummn(name="field12")
field12
@Colummn(name="field21")
field21
当我更新field21时,table2应该更新此字段,但table1没有关于table2的任何信息,只有table2包含table1的外键
你知道我该怎么做吗
我不能改变表结构,我只能用java创建新类 你能使用
@SecondaryTable
吗?表2中的id
列(我猜是PK)很烦人。但如果可以在插入时生成它,那么使用@SecondaryTable
映射两个表应该可以:
@Entity
@Table(name="TABLE1")
@SecondaryTable(name="TABLE2", pkJoinColumns =
@PrimaryKeyJoinColumn(name="TAB_ID", referencedColumnName="TAB_ID")
)
public class MyEntity {
...
@Id @Column(name="TAB_ID")
private Long tabId;
@Column(name="FIELD11")
private int field11;
@Column(name="FIELD12")
private int field12;
@Column(name="FIELD21", table="TABLE2")
private int field21;
...
}
如果不能,恐怕您必须映射两个类(使用OneToOne
关系)
工具书类
- JPA维基百科
- JPA1.0规范
- 第9.1.2节“二次表注释”
- 第9.1.32节“PrimaryKeyJoin列注释”