powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по JPA
4 сообщений из 4, страница 1 из 1
Вопрос по JPA
    #38055548
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста.
Есть сущность Person.
Делаю тест.

Код: java
1.
2.
3.
4.
5.
6.
public void testFetchingDeletedPerson()
    {
        personService.delete(person);
        personService.findByName(personName);
    }
    



Выскакивает эксепшн

Код: java
1.
org.springframework.orm.jpa.JpaObjectRetrievalFailureException: deleted entity passed to persist



С чем это связано? Ну удалил person, и продолжаю находится внутри той же транзакции.
Теперь я по имени - просто строке - хочу достать такую же person из базы.
Но не тот же самый инстанц, который я уже удалил.

Или дело в том, что person уже помечена к удалению, и будет удалена после транзакции, а я тут в той же транзакции запрашиваю ее?

В чем тут проблема и как построить тест? Мне надо проверить, что person удалена.
...
Рейтинг: 0 / 0
Вопрос по JPA
    #38055555
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
public void doSomethingCool(){
//
}


Почему после выполнения этого кода не все клево?
П.С. это был намек на то чтобы вы выложили код.
...
Рейтинг: 0 / 0
Вопрос по JPA
    #38055615
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вопрос вот в чем - в тесте открывается сессия - я удаляю сущность из базы и тут же хочу поверить, что ее там нет - пытаюсь считать ее по name. Получается, что она еще в кэше - то есть hibernate еще не удалил ее фактически. А я прошу Hibernate считать ее же - по имени. В той же транзакции. Hibernate ругается - deleted entity passed to persist.
!То есть он ее пометил на удаление но не удалил еще? В чем тут проблема?
...
Рейтинг: 0 / 0
Вопрос по JPA
    #38055624
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osonНу вопрос вот в чем - в тесте открывается сессия - я удаляю сущность из базы и тут же хочу поверить, что ее там нет - пытаюсь считать ее по name. Получается, что она еще в кэше - то есть hibernate еще не удалил ее фактически. А я прошу Hibernate считать ее же - по имени. В той же транзакции. Hibernate ругается - deleted entity passed to persist.
!То есть он ее пометил на удаление но не удалил еще? В чем тут проблема?
Всё верно. Нужно вызвать flush(), чтобы сбросить состояние кэша первогоуровня в базу. Желательно ещё и закомитить и проверить из другой транзакции.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по JPA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]