簡體   English   中英

休眠兩個表和一個對象

[英]Hibernate two tables and one object

我有這樣的說法:

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中創建新類。

Table2id列(我想是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關系)。

參考文獻

  • JPA Wikibook
  • JPA 1.0規范
    • 第9.1.2節“輔助表注釋”
    • 第9.1.32節“ PrimaryKeyJoinColumn注釋”

您可以使用@SecondaryTable @SecondaryTable注釋問題嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM