спящий режим jpa, когда объект управляется - PullRequest
2 голосов
/ 20 февраля 2011

У меня есть тестовый пример, где я получаю объект по идентификатору с помощью метода entitymanager.find.затем я пытаюсь проверить, находится ли объект в управляемом состоянии, используя entityManager.contains ().но содержит приходит ложь.Поэтому когда объект находится в постоянном состоянии, в котором содержится возвращаемое значение true.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2011

Метод find может быть вызван без транзакции, однако в этом случае результирующий объект (если он найден) будет в состоянии отсоединен , если используется EntityManager с "транзакцией- контекст сохраняемой области ". Если EntityManager имеет «расширенный контекст постоянства», результат будет в состоянии managed . Если в транзакции вызывается метод find , результирующая сущность будет управляться в обоих случаях.

Для получения дополнительной информации о контекстах "область действия транзакции" и "расширенный" срок действия см. здесь .

0 голосов
/ 20 февраля 2011

Если вы вызовете функцию поиска по идентификатору в менеджере сущностей, объект будет управляться, пока он находится в транзакции. В противном случае он становится отделенным, и вы должны вызвать entityMangerInstance.merge (), чтобы сделать объект управляемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...