5

Mam projekt korzystający z Hibernate na bazie danych Oracle, dla którego wszystkie elementy są generowane bezpośrednio z Hibernate Tools pod kontrolą pliku hibernate.reveng.xml.Jak mogę zmienić nazwę samoreferencyjnego zestawu wiele do wielu za pomocą pliku hibernate.reveng.xml?

mam jedną klasę, która ma wiele do wielu relacji do siebie przy użyciu tabeli pośrednika, tak:

PERSON: 
    ID 
    ... 

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

bez żadnych konkretnych dyrektyw, Hibernate Tools automatycznie wygenerować klasy, który wygląda tak :

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

Ponieważ nie jest to bardzo pomocne podczas kodowania, aby określić, który jest zbiorem dominującym i który jest zbiorem dziecko, chciałbym zmienić ich nazwy jako „rodziców” i „dzieci”.

Edytowałem plik hibernate.reveng.xml, aby spróbować wymusić zmianę nazwy tego pola, ale nie mogę znaleźć czegoś, co działa. Nie jestem pewien, czy określam zmianę w tabeli PERSON, w tabeli PERSON_PERSON lub w obu, i które atrybuty należy zmienić.

Jestem przyzwyczajony do ręcznego ustawiania tych klas, ale na tym projekcie nie mam kontroli nad procesem kompilacji, więc muszę zrobić to, co generuje Hibernate Tools, więc naprawdę muszę tworzyć narzędzia hibernacji, aby robić to, co chcę.

+1

Jestem dość pewny, że używa metadanych SQL do ich wygenerowania. Dlatego nie sądzę, że będziesz w stanie odciąć zautomatyzowany proces od tego, co masz. – javamonkey79

Odpowiedz

1

w pliku hibernate.reveng.xml spróbuj zaznaczyć podobne kolumny;

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

Projekt, dla którego było to pytanie, jest już dawno temu, więc nie mogę potwierdzić, ale jeśli jest tu konsensus, mogę ustawić to jako poprawną odpowiedź. – Jon

Powiązane problemy