Я использую JPA (с Hibernate как поставщик JPA). У меня есть операция, чтобы удалить объект, и, кажется, что если я отделить объект и сразу же слить его исключение выбрасывается, т.е.Откат JPA и немедленное слияние вызывает ошибки
em.find(entity.class, entitiy.getId())
em.detach(entity)
em.merge(entity)
будет вызывать ошибки при просто
em.find(entity.class, entitiy.getId())
Пройдут безотказно , Есть ли что-то, что мне не хватает в отделении и слиянии? Я ничего не делал в самом сущности, это не было изменением, поэтому слияние не должно ничего менять.
При необходимости я могу подробнее рассказать о своем конкретном случае.
EDIT
Как @rmertins указывал, я должен использовать возвращаемое значение из слияния, как слияние возвращает объект слияния в то время как объект мы использовали в качестве параметра остается отдельно. Это работает:
em.find(entity.class, entitiy.getId())
em.detach(entity)
entity = em.merge(entity)
ошибки? заботиться о том, чтобы дать людям ключ, как исключение? –
Является ли класс или объект 'entity'? – Yubaraj
EntityNotFoundException для другого объекта, который был удален (до вызова em.find(), все еще в той же транзакции). Я сказал, что при необходимости создам больше :) Entity - это объект, entity.class должен быть Entity.class). – apines