Я начинаю свое приключение с Hibernate, поэтому наберитесь терпения :)
Я хочу сделать сопоставление для двух таблиц, например, A и B. Отношение между A и B однозначно.
Я написал этот файл hbm.xml:
<hibernate-mapping package="something">
<class name="A" table="A">
<id name="id" type="int" column="ID">
<generator class="native" />
</id>
<set name="setInA" sort="natural" cascade="all" lazy="false">
<key column="ANOTHER_ID"/>
<one-to-many class="B" />
</set>
</class>
<class name="B" table="B">
<id name="anotherId" type="int" column="ANOTHER_ID">
<generator class="native" />
</id>
</class>
</hibernate-mapping>
Конечно, я также сделал классы POJO A и B.
А теперь, когда я пытаюсь сделать:
A a = new A();
Set<B> set = new TreeSet<B>();
set.add(new B());
a.setSetInA(set);
session.save(a);
Hibernate вставляет новую строку в таблицу A, но (что является худшим) не вставляет новую строку в таблицу B, а только делает SQL Update для несуществующей строки в B.
Может кто-нибудь сказать мне, почему это происходит? Что я сделал не так?