http://vspimages.vsp.virginia.gov/images/024937- 02. Каково поведение слияния с ленивой инициализированной коллекцией? Вот последовательности, приводящие к вопросу: у меня есть запись команды и записи 3 игроков в базе данных. Сущность группы имеет список, в котором используются FetchType.LAZY, CascadeType.ALL
Кнопка поиска на ... Вот последовательности, ведущие к вопросу:
- У меня есть запись команды и 3 записи игрока в базе данных. Сущность группы имеет список, в котором используются FetchType.LAZY, CascadeType.ALL
- Нажата кнопка поиска на веб-интерфейсе
- На стороне сервера вызывается запрос с использованием запроса JPA, в котором обнаруживаются все записи группы, в этом случае только 1 запись объекта команды, возвращенная из запроса (который имеет прокси списка объектов игрока)
- Сопоставьте этот teamEntity с DTO и верните этот DTO в webui, пропуская отображение списка объектов игрока
- Webui отображает DTO в HTML-форме, готовую к получению изменений от пользователя.
- Пользователь изменяет свойства команды, например дату ее создания
- Нажата кнопка сохранения на веб-интерфейсе
- Преобразование DTO для объекта команды, будет использоваться для обновления уже существующей записи команды
- Но в этом случае, если я буду использовать em.merge (teamEntity), запись команды будет обновлена, но что произойдет со списком игроков? Потому что при преобразовании из DTO в командную сущность teamEntity имеет пустой список сущностей игроков. И после слияния я заметил, что teamEntity имеет нулевой размер деталей. Но после обновления этого объекта, em.refresh (teamEntity), он вернет 3 размера детали.
Я запутался:
- Почему после слияния размер равен 0? Это как если бы я больше не представлял запись
- Перед проведением теста я думал, что детали будут удалены, поскольку я объединяю teamEntity с пустой деталью.
Пожалуйста, просветите меня :)
Спасибо!