Добрый день!
Имеется следующая структура данных:
1. Базовая таблица (содержит Unique ids)
2. Таблица, содержит подмножество unique ids из таблицы 1
3. На уровне java code: базовый класс и наследник
Имеется вот такой вот hibernate mapping:
<class name="base.class" table="base_table">
<id name="id" type="java.lang.Long" unsaved-value="null" column="ID_COLUMN">
<generator class="assigned" />
</id>
<property ...
</joined-subclass>
<joined-subclass name="child.class" table="child_table">
<key column="ID_COLUMN"/>
<property ....
<set
name="spotIds"
lazy="false"
fetch="join"
outer-join="true"
table="mapping_table">
<key column="ID_COLUMN"></key>
<element type="java.lang.Long" column="MAPPING_ID" not-null="true"/>
</set>
</joined-subclass>
</class>
</hibernate-mapping>
Проблема с в том, что когда я выполняю код типа:
Criteria criteria = session.createCriteria(child.class);
criteria.list();
То мне возвращается в листе столько одинаковых объектов, сколько содержится для ID_COLUMN в таблице mapping_table.
Т.е. если таблица mapping_table содержит 2 строки:
1 — 123
1 — 1234
То у меня будет 2 одинаковых объекта child.class в листе. Если 3, то 3.
В чём может быть проблема?