コントローラでは、ユーザ間の "友情"を削除するサービスメソッドを呼び出します。ファシリティを削除するときにHibernateが新しいものを追加する
// Remove friendship
friendshipService.removeFriendship(friendship);
これは予期せず方法
@Override
public void removeFriendship(Friendship friendship) {
Long fromId = friendship.getFromId();
Long toId = friendship.getToId();
friendshipRepository.delete(new Friendship(fromId, toId));
friendshipRepository.delete(new Friendship(toId, fromId));
}
のボディは、データベースとHibernateのコマンドは、新しいオブジェクトを追加なぜ、この
Hibernate: select nextval ('hibernate_sequence')
Hibernate: insert into friendship (from_id, to_id, id) values (?, ?, ?)
Hibernate: delete from friendship where id=?
Hibernate: select nextval ('hibernate_sequence')
Hibernate: insert into friendship (from_id, to_id, id) values (?, ?, ?)
Hibernate: delete from friendship where id=?
のように見えるのですか?
あなたの 'FriendshipRepository'を表示してください。また、「友情」がちょうど2つのid-sである場合、私はあなたが複数のことを間違っていることを嗅ぐことができます。 Hibernateの関係はid-s間ではなく、それらはエンティティ間にあります。また、単純な関係であれば、別のエンティティではなく、エンティティクラスとそれ自身の間の多対多であるべきです。 – Tobb