Это потому, что у вас, вероятно, Book 1..n Chapter
, с cascade
, установленным (по крайней мере) PERSIST
. Это означает, что при сохранении книги все ее главы также сохраняются.
То есть вы пытаетесь сохранить главы дважды. Вам не нужно второе сохранение (во втором примере)
Первый пример работает таким образом, потому что глава стала ассоциироваться с сеансом (возможно, вы не переопределили методы hashCode()
и equals()
), а save()
вообще ничего не делает.
Но это все догадки. Вы должны показать свои сопоставления.