У меня есть три таблицы: item , node и item_node в качестве связующей таблицы, которая, конечно, содержит идентификаторы элемента и узла.
Можно ли сопоставить таблицу связывания ( item_node ) таким образом, чтобы соответствующий класс ItemNode как-то содержал ссылки на классы Item и Node?Есть ли известная практика для отображения таблиц ссылок в отношениях m: n?
Я мог бы представить что-то вроде этого:
<class name="test.model.ItemNode" table="ITEM_NODE">
<composite-id name="ID" class="test.model.INCompID">
<key-property name="item" column="ITEM_ID" />
<key-property name="node" column="NODE_ID"/>
</composite-id>
</class>
, где INCompID - класс для составного идентификатора:
public class INCompID {
private Item item;
private Node node;
//getters, setters and overriden
//equals() and hashCode() methodes
}
Item и Узел уже сопоставлены и работают сами по себе.
Я знаю, что это не обычный подход для работы со связями "многие ко многим", но у меня возникла довольно досадная проблема со стандартным подходом на основе наборов / сумок из-за паршивого исключения ленивой инициализации, и тамЭто не способ загружать эти коллекции с нетерпением, потому что они содержат огромное количество данных (сотни тысяч строк в таблицах БД).
Spring AOP используется для управления транзакциями.OpenSessionInViewFilter / Interceptor, по-видимому, также не подходит для этой конкретной проблемы, поэтому ...