2013-11-04 66 views
1

我有一個大數據庫分成幾個模式。在Eclipse嚮導(JPA工具),我產生一個模式的JPA實體,但也有一些表與在其他模式表的依賴,而問題是這些實體都是這樣產生:有沒有什麼辦法可以正確生成幾個模式的JPA實體?

//Foreign Key of one table in other schema 
@Column(name="TABLE_ID") 
private BigDecimal tableId; 

而且我認爲它必須這樣生成:

//Foreign Key of one table in other schema 
@JoinColum(name="TABLE_ID") 
private TableClass tableId; 

第二種方法比第一種更正確嗎?有什麼辦法以第二種方式自動生成JPA實體?

+0

發生了什麼似乎是正確的。 tableId是某個表的列。你會期望它是像長,int,十進制或類似的東西。在一個組合鍵的情況下,唯一一個id映射到的類將是一個PK類。 – arajashe

回答

0

當jdbc連接對TableClass不可見時,會生成Ids而不是實際的實體關係。爲這些表創建公共同義詞(或等效項)可能會有所幫助。即使選擇性地選擇表格,也可以通過逆向工程來觀察這種行爲。實體與非選定表格的關聯通常將以您當前正在經歷的方式生成,例如,您正在經歷的方式是

。對於有兩個表Person和地址和發件人地址,以人..同時選擇Person和Address會產生在解決諸如

private Person person; 

在另一方面適當的實體relatioship鏈接

,僅選擇地址將簡單地創建一個映射到原始類型不是由JPA工具

private BigDecimal personId; 

這是什麼似乎在你的情況

是發生所產生的Person實體

`

+0

是的,這正是發生的事情,但是當我點擊'JPA Tools>從表生成實體「時,我只能選擇一個模式。真正的問題是,是否有任何方法可以選擇所有模式來生成具有私人人物的實體。謝謝。 – Alavaros

+1

如果這是oracle,您可以通過A的連接公開A.TableA和B.TableB,方法是在模式A中創建B.TableB的公共同義詞。然後逆向工程工具將B.TableB視爲A.TableB – arajashe

+0

問題是我無法修改DB – Alavaros

相關問題