Я понимаю, что JPA не работает так, как я ожидал, так как я часто получаю несколько экземпляров одного объекта в сеансе.
Вот пример исследования: у родителя есть коллекция детей, сопоставленная с @ OneToMany
В одном методе:
- получить экземпляр Parent P
лицо
- загрузить коллекцию потомков с помощью P.getChilds (): она содержит экземпляр C1 и C2
- затем найдите конкретного дочернего элемента с оптимизированным запросом JPA, у которого Parent имеет параметр: Child C = dao.getSpecificChild (P)
Здесь я ожидал бы, что C будет одним из двух уже загруженных экземпляров (C1 или C2). Я думал, что JPA проверит уже существующий экземпляр в своей текущей сессии.
Но JPA загрузит новый экземпляр C (будь то C1 или C2 здесь не имеет значения).
Так что я получаю два разных экземпляра C.
Мой вопрос: это ожидаемое поведение?
Если это так, как я могу согласовать экземпляры своих сущностей в сеансе?
ура