如何使用hibernate.reveng.xml更改自引用多对多集的名称?

时间:2010-10-14 23:29:40

标签: hibernate orm many-to-many reverse-engineering hibernate-tools

我有一个在Oracle数据库上使用Hibernate的项目,所有实体都是在hibernate.reveng.xml文件的控制下直接从Hibernate Tools生成的。

我有一个类使用中间表与自身有多对多的关系,如下所示:

PERSON:
  ID
  ...

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

没有任何特定的指令,Hibernate Tools会自动生成一个如下所示的类:

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 个答案:

答案 0 :(得分:1)

在你的hibernate.reveng.xml文件上的

尝试标记这样的相关列;

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