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

相关问题