次の関係を持つ 2 つのエンティティを保存したいと思います。
@Entity
public class Synonyme {
@OneToMany(fetch=FetchType.LAZY, cascade=CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name="ID", nullable = false)
private List<Term> terms = new ArrayList<>();
}
@Entity
public class Term {
private String word;
public static createTerm(String word, Synonyme newSyn, Long someothercriteria) {
Term term = new Term();
...
newSyn.addTerm(term);
}
}
そして、私はそれらを次のように保存したい:
Synonyme newSyn= Synonyme.createSynonyme ();
entityManager.persist(newSyn);
for(String word : words) {
Term term = Term.createTerm(word, newSyn, 0L );
}
entityManager.flush();
これらのコードは Junit-Test で正常に動作します (Junit-Test は Spring のメモリ内データベースを使用します) が、実際のデータベースでそれらを使用すると、次の例外が発生しました。
Caused by: javax.persistence.PersistenceException: org.hibernate.jdbc.BatchedTooManyRowsAffectedException: Batch update returned unexpected row count from update [0]; actual row count: 2; expected: 1
この例外がわかりません。それはどういう意味ですか?