Holen Sie Spalten- und Tabellennamen aus einer Liste von einem Modell in Hibernate

stimmen
0

Hibernate Mapping XML für Klasse A:

<class name=com.example.A table=table_a>
  <id name=id column=id>
    <generator class=native/>
  </id>
  <property name=foo table=bar/>
  <list name=bs table=table_b>
    <key column=kee>
    <index column=indx>
    <many-to-many column=bss class=com.example.B/>
  </list>
</class>

Ich kann wie folgt den Tabellennamen der Klasse A erhalten:

configuration.getClassMapping(A.getName())
    .getTable()
    .getName();

Ich kann auch die Spaltennamen der Eigenschaft „foo“ wie folgt erhalten:

Column col = (Column) configuration
    .getClassMapping(clazz.getName())
    .getProperty(propertyName)
    .getColumnIterator().next();
col.getName();

Allerdings weiß ich nicht, wie man:

  1. Der Tabellenname der Liste „bs“ //table_b

  2. Der Name der „Schlüssel“ Spalte der Liste „bs“ //kee

  3. der Name der Spalte „Index“ der Liste „bs“ //indx

  4. der Spaltenname der many-to-many-Beziehung mit Klasse B //bss

Veröffentlicht am 15/01/2015 um 20:47
vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Gefunden eine Lösung 1,2,3 in Frage zu stellen:

(1) der Tabellenname der Liste „bs“ // „Table_B“

return collection.getCollectionTable().getName();

(2) der Name der „Schlüssel“ Spalte der Liste „bs“ // „kee“

return ((Column) collection.getKey().getColumnIterator().next()).getName();

(3) der Name der Spalte "Index" der Liste "bs" // "indx"

org.hibernate.mapping.List list = (org.hibernate.mapping.List) collection;
return ((Column) collection.getIndex().getColumnIterator().next()).getName();

Noch habe keine Antwort für 4 Personen.

Beantwortet am 18/01/2015 um 17:41
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more