Для ознакомления с проблемой ...
У меня есть группа таблиц, связанных с конкретной таблицей.Теперь для связи между ними и «table_one» я создал только таблицу, в которой первичный ключ состоит из:
id_table_one, id_table_many, id_table_many_type.
Первый указывает идентификатор table_one, второй - идентификатор table_many (любого из них), а третий ключ представляет собой строку, которая указывает тип таблицы.
Более конкретный пример:
1, 1, «таблица 1» -> указывает на связь между table_many «таблица 1» (строка 1) и строкой 1 table_one
3, 5, «таблица 1» -> указывает на связь между table_many «таблица 1» (строка 5) и строкой 3 table_one
3, 5, «таблица 2»«-> указывает на связь между table_many« table 2 »(строка 5) и строкой 3 table_one
Это легко сделать в SQL, но вопрос в том, как я могу сделать отображение hibernateв каждом table_many?
Я объявил table_one следующим образом:
<class name="tableOne" table="table_one">
<composite-id>
<key-property name="idTableOne" type="java.lang.Integer">
<column name="id_table_one" not-null="true"/>
</key-property>
<key-property name="idTableMany" type="java.lang.Integer">
<column name="id_table_many" not-null="true"/>
</key-property>
<key-property name="idTableManyType" type="string">
<column name="id_table_many_type" length="100" not-null="true"/>
</key-property>
</composite-id>
</class>
Как я могу сделать во многих таблицах?
<class name="tableMany1" table="table_many_1">
<id name="idTableMany1" type="java.lang.Integer">
<column name="id_table_many_1" />
<generator class="identity" />
</id>
<set cascade="all" name="tableOneRows" sort="unsorted"
table="table_one" lazy="false">
<...>
</set>
</class>
Я не знаюкак заполнить раздел <...> ... какой-нибудь совет?
Завершение, которое я преследую, заключается в управлении таблицей One (чтение / запись) из каждой таблицыMany ...
спасибо всем!