5

我有一個項目在Oracle數據庫上使用Hibernate,所有實體都是在hibernate.reveng.xml文件的控制下從Hibernate Tools直接生成的。如何使用hibernate.reveng.xml更改自引用多對多集合的名稱?

我已經擁有自身使用中間表中的許多一對多的關係,像這樣一類:沒有任何具體的指示

PERSON: 
    ID 
    ... 

PERSON_PERSON: 
    PARENT_ID --> PERSON.ID 
    CHILD_ID --> PERSON.ID 

,Hibernate的工具會自動生成一個類,它看起來像這樣:

public class Person { 
    private Long id; 
    private Set<Person> personsForParentId = new HashSet<Person>(0); 
    private Set<Person> personsForChildId = new HashSet<Person>(0); 
} 

由於編碼,以確定哪個是父集,哪個是子集時,這不是非常有幫助,我想給他們改名爲「父母」和「孩子」。

我一直在編輯hibernate.reveng.xml來試圖強制它重命名該字段,但我無法找到有效的東西。我不確定我是在PERSON表,PERSON_PERSON表還是兩者上指定更改,以及要更改哪些屬性。

我習慣於手動設置這些類,但是在這個項目中我沒有對構建過程的控制,所以我必須處理由Hibernate Tools生成的東西,所以我真的只需要讓Hibernate Tools做我想做的事。

+1

我很確定它使用SQL元數據來生成這些元數據。因此,我認爲你不可能讓自動化過程偏離你所擁有的。 – javamonkey79 2011-10-17 04:04:02

回答

1

你的hibernate.reveng.xml文件嘗試標記這樣的相關列;

<column name="personsForParentId" property="parents" /> 
+0

這個問題所用的項目早已過去,所以我無法確認,但如果在這裏達成共識,我可以將其設置爲正確的答案。 – Jon 2011-10-20 15:34:09

相關問題