我有这个想法:
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的外键改为table1
知道我该怎么做?
我无法更改表结构,我只能在java中创建新类。
答案 0 :(得分:3)
id
中的Table2
列(我猜这是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;
...
}
如果你不能,我担心你必须映射2个类(OneToOne
关系)。
答案 1 :(得分:2)
您可以使用@SecondaryTable
@SecondaryTable annotation problem吗?