Как я могу изменить имя само-ссылочного множества «многие ко многим», используя hibernate.reveng.xml? - PullRequest
5 голосов
/ 15 октября 2010

У меня есть проект с использованием Hibernate в базе данных Oracle, для которого все сущности генерируются непосредственно из Hibernate Tools под управлением файла hibernate.reveng.xml.

У меня есть один класс, который имеет много-много отношения к себе с использованием промежуточной таблицы, например:

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.revengXML, чтобы заставить его переименовать это поле, но я не могу найти то, что работает.Я не уверен, указываю ли я изменение в таблице PERSON, таблице PERSON_PERSON или в обеих, и какие атрибуты нужно изменить.

Я привык настраивать эти классы вручную, но на этомУ меня нет контроля над процессом сборки, поэтому мне приходится иметь дело с тем, что генерируется Hibernate Tools, поэтому мне просто нужно заставить Hibernate Tools делать то, что я хочу.

1 Ответ

1 голос
/ 18 октября 2011

в файле hibernate.reveng.xml попробуйте пометить связанные столбцы следующим образом:

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