Что такое контекст устойчивости?
Я новичок в мире Java и JPA. Я изучал JPA и наткнулся на многие новые термины, такие как Entity, настойчивость. Во время чтения я не мог понять точное определение для Контекст сохранения.
Может ли кто-нибудь объяснить это простым языком? Что это связано с данными, используемыми в @Entity
?
Например, я считаю, что это определение слишком сложно понять:
Контекст persistence - это набор сущностей, для которого для любой постоянной идентификации существует уникальный экземпляр объекта.
Ответы
Ответ 1
Контекст persistence обрабатывает набор сущностей, которые хранят данные, которые должны сохраняться в каком-либо хранилище персистентности (например, база данных). В частности, контекст знает разные состояния, которые может иметь объект (например, управляемый, отсоединенный) в отношении как контекста, так и основного хранилища сохраняемости.
Хотя Hibernate-связанный (поставщик JPA), я думаю, что эти ссылки полезны:
http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch03.html
http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/architecture.html
В Java EE контекст персистентности обычно доступен через EntityManager.
http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html
Различные состояния, которые может иметь сущность, и переходы между ними описаны ниже:
http://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html/objectstate.html
http://gerrydevstory.com/wp-content/uploads/2012/05/jpa-state-transtition.png
Ответ 2
- Управление объектами осуществляется с помощью javax.persistence.EntityManager экземпляра с использованием контекста persistence.
- Каждый экземпляр EntityManager связан с a контекстом персистентности.
- В контексте постоянства управляются экземпляры сущностей и их жизненный цикл .
- Контекст сохранения определяет область, в которой создаются, сохраняются и удаляются экземпляры сущностей конкретных.
- A контекст сохранения похож на кеш, который содержит набор постоянных сущностей, поэтому после завершения транзакции , все постоянные объекты удаляются из контекста сохранения EntityManager и больше не управляются.
Ответ 3
Взято из эта страница:
Вот быстрый лист обмана мира JPA:
- Кэш - это копия данных, копирование которых вытаскивается из базы данных, но живет за пределами базы данных.
- Очистка кэша - это действие по возврату измененных данных в базу данных.
- PersistenceContext - это, по сути, кеш. Он также имеет тенденцию иметь собственное соединение без обмена данными.
- EntityManager представляет собой PersistenceContext (и, следовательно, кэш)
- EntityManagerFactory создает EntityManager (и, следовательно, PersistenceContext/Cache)
Ответ 4
Оба API org.hibernate.Session и javax.persistence.EntityManager API представляют собой контекст для работы с постоянными данными. Эта концепция называется контекстом персистентности. У постоянных данных есть состояние в отношении как контекста персистентности, так и базовой базы данных.
Ответ 5
Постоянный контекст представляет объекты, которые содержат данные и могут быть сохранены в некотором постоянном хранилище, таком как база данных. Как только мы commit
транзакцию в сеансе, к которому присоединены эти объекты, Hibernate очищает постоянный контекст, и изменения (вставка/сохранение, обновление или удаление) в них сохраняются в постоянном хранилище.
Ответ 6
"Набор экземпляров, которые сохраняются (сущности), управляемые экземпляром диспетчера сущности в данный момент времени", называется контекстом сохранения.
JPA @Необязательная аннотация означает объект, сохраняющий возможность.
Обратитесь к JPA Определение здесь
Ответ 7
В то время как @pritam kumar дает хороший обзор, пятая точка не соответствует действительности.
Контрастность Контекст может быть либо областью транзакций - сдерживанием Контекст "живет" для длины транзакции или Extended - Контрастность Контекст охватывает несколько транзакций.
https://blogs.oracle.com/carolmcdonald/entry/jpa_caching
JPA EntityManager и Hibernate Session предлагают расширенный контекст сохранения.
Ответ 8
С точки зрения непрофессионала, мы можем сказать, что постоянный контекст - это среда, в которой сущности управляются, т.е. он синхронизирует "сущность" с базой данных.