Когда у меня есть запрос JPA, который я вызываю .getResultList(), он возвращает мне список объектов. Объекты в этом списке управляются или удаляются? То есть, я должен беспокоиться о слиянии или сохранении их позже, если я вношу им изменения, или эти изменения будут автоматически подняты?
Когда я использую запрос JPA getResultList(), результаты удалены или управляются?
Ответ 1
Да, объекты, возвращенные из .getResultList()
, управляются.
Когда вы вносили изменения в управляемые объекты, вы не беспокоитесь о слиянии, так как эти изменения будут автоматически отсортированы с помощью EntityManager
.
Управляемые объекты будут отсоединены, если EntityManager
, который используется для загрузки этого объекта, close(), clear() или отсоединить(). Отдельные объекты больше не обрабатываются, и вы должны сделать слияние, чтобы EntityManager
забирали изменения.
Ответ 2
По моему опыту, возвращаемые значения getResultList() привязаны. То есть вам не нужно вручную их сохранять, если вы вносите изменения в одну транзакцию.
Ответ 3
Они будут управляться, если вы в настоящий момент находитесь в транзакции, но если вы этого не сделали (например, если вы аннотировали свою антрассировку с помощью TransactionAttributeType.NOT_SUPPORTED или TransactionAttributeType.NEVER), ваши объекты не будут управляться.