Что CascadeType.Обновить на самом деле сделать?
что значит CascadeType.REFRESH
на самом деле делать?
определение для него
когда мы обновляем сущность, все сущности, содержащиеся в этом поле, тоже обновляются
но что это значит на практике? Может кто-нибудь, пожалуйста, дайте мне простой пример?
2 ответа:
отдельные описания каскадных типов могут быть немного запутанными, но есть простой способ выяснить это из общего случая.
любой
CascadeType
значения, это означает, что если операцияX
вызывается на экземпляре с помощьюEntityManager
интерфейс, и этот экземпляр имеет ссылки на другие экземпляры сущностей, и что ассоциацияCascadeType.X
определены, тоEntityManager
операция также будет применена к этому связанному объекту.так
EntityManager.refresh()
определяется как :обновить состояние экземпляра из база данных, перезапись внесенных изменений к сущности, если таковая имеется.
Итак, если сущность A имеет ссылку на сущность B, и эта ссылка аннотируется
@CascadeType.REFRESH
иEntityManager.refresh(A)
называется, потомEntityManager.refresh(B)
неявно называется также.
извлечение путем обновления: Управляемые объекты можно перезагрузить из базы данных с помощью метода обновления:
содержимое управляемого объекта в памяти отбрасывается (включая изменения, если таковые имеются) и заменяется данными, полученными из базы данных. Это может быть полезно для обеспечения того, чтобы приложение имело дело с самой последней версией объекта сущности, на случай, если он был изменен другим EntityManager с момента его получения.
источник: http://www.objectdb.com/java/jpa/persistence/retrieve