Использование последней версии Hibernate 3 ...
Имейте модель, в которой класс Element имеет 2 списка списков против класса Relation.Одно из них, где Элемент владеет (источниками) Отношения, а другое - когда оно является местом назначения.
<class name="Element"....>
....
<list name="sourceRelations" ....>
...
<one-to-many class="...Relation" />
</list>
<list name="destinationRelations" ....>
...
<one-to-many class="...Relation" />
</list>
</class>
<class name="Relation"....>
....
<many-to-one name="source" class="...Element" ...
<column name="SOURCEID" sql-type="INTEGER" not-null="true" />
</many-to-one>
<many-to-one name="destination" class="...Element" ...
<column name="DESTINATIONID" sql-type="INTEGER" not-null="true" />
</many-to-one>
</class>
Отображение по существу полезно только при генерации запросов Критерии.В противном случае при получении элемента (только через критерии, а не через get / load) я никогда не хочу, чтобы Hibernate фактически выбирал коллекции Relation.Никогда.Прямо сейчас в моем коде я очищаю объекты Element перед тем, как возвращать их, создавая новый Element и передавая свойства, которые я хочу распространить (т.е. sourceRelation / destinationRelation никогда не передается).То же самое касается запросов критериев к объектам Relation.Свойства источника / назначения (т. Е. Элемента) очищаются.
Есть ли способ проксировать сущность Элемента через перехватчики Hibernate или использовать Tuplizer, чтобы принудительно заставить все сущности Элемента обнулять свойства sourceRelation / destinationRelation?