2015-01-15 1 views
0

Hibernate отображения XML для класса А:Получить столбец и имя таблицы из списка из модели в Hibernate

<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> 

я могу получить имя таблицы класса А следующим образом:

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

I можно также получить имя столбца собственности «Foo» следующим образом:

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

Однако я не знаю, как получить:

  1. имя таблицы из списка «бс» //"table_b"

  2. имя столбца «ключ» из списка «бс» //"kee"

  3. имя столбца «индекса» из списка «АСР» //"indx"

  4. имя столбца из многих ко многим отношений с классом B //"bss"

ответ

0

Найдено решение на вопрос 1,2,3:

(1) имя таблицы списка "BS" // "TABLE_B"

return collection.getCollectionTable().getName(); 

(2) название столбец "ключ" из списка "АСР" // "Kee"

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

(3) название колонки "индекса" из списка "BS" // "INDX"

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

По-прежнему не имеют ответа для 4.

Смежные вопросы