こんにちは、userobject を保持する conversation.access スコープ Bean があります。
public class UserEntity {
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "userEntity")
@JsonIgnore
private List<UserAuthorityEntity> userAuthorityEntities = new ArrayList<UserAuthorityEntity>();
}
- 最初のリクエストでユーザーがロードされます
- 2 番目のリクエストで、リストから 1 つの UserAuthorityEntity を削除し、ユーザーをマージします
- 3 番目のリクエストで、別の UserAuthorityEntity をリストから削除し、ユーザーをマージします
2番目のリクエストまで、すべてが正常に実行され、すべてがDBに正しく保持されます。
しかし、3番目のリクエストでエラーが発生します
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [mypackage.common.account.UserAuthorityEntity#mypackage.common.account.UserAuthorityEntity$AuthoritiesEntityUserEntityPK@63f4adf]
at org.hibernate.internal.SessionFactoryImpl$1$1.handleEntityNotFound(SessionFactoryImpl.java:244)
at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:212)
at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:262)
at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:150)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1092)
at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:1019)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:672)
at org.hibernate.type.EntityType.resolve(EntityType.java:490)
at org.hibernate.type.EntityType.replace(EntityType.java:354)
at org.hibernate.type.CollectionType.preserveSnapshot(CollectionType.java:558)
at org.hibernate.type.CollectionType.replaceElements(CollectionType.java:532)
at org.hibernate.type.CollectionType.replace(CollectionType.java:660)
at org.hibernate.type.TypeHelper.replace(TypeHelper.java:177)
at org.hibernate.event.internal.DefaultMergeEventListener.copyValues(DefaultMergeEventListener.java:372)
at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:309)
at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:151)
at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:76)
at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:914)
at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:898)
at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:902)
at mypackage.dao.MainDao.merge(MainDao.java:105)
「AuthoritiesEntityUserEntityPK」は、2 番目の要求で削除したオブジェクトを探していることを示しています。
何が間違っているのですか?