当前位置: 首页 > 面试题库 >

什么是持久性上下文?

厉成仁
2023-03-14
问题内容

我是Java世界和JPA的新手。我在学习JPA时遇到了许多新术语,例如Entity,persistence。在阅读时,我无法理解 Persistence
Context
的确切定义。

谁能用简单的外行术语解释它?与中使用的数据有@Entity什么关系?

例如,我发现此定义太复杂而难以理解:

持久性上下文是一组实体,因此对于任何持久性标识,都有一个唯一的实体实例。


问题答案:

持久性上下文处理一组实体,这些实体保存要持久存储在某个持久性存储(例如数据库)中的数据。特别地,上下文意识到实体可以相对于上下文和基础持久性存储具有不同的状态(例如,管理,分离)。

尽管与Hibernate相关(JPA提供程序),但我认为这些链接很有用:

http://docs.jboss.org/hibernate/core/4.0/devguide/zh-
CN/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



 类似资料:
  • 持久性上下文是一组实体,因此对于任何持久性标识都有一个唯一的实体实例。

  • 问题内容: 事务范围的持久性上下文和扩展的持久性上下文之间有什么区别? 问题答案: 在JSR-220 Enterprise JavaBeans 3.0规范中清楚地解释了差异: 5.6容器管理的持久性上下文 (…) 可以将容器管理的持久性上下文定义为具有范围为单个事务的生存期或跨越多个事务的扩展生存期,这取决于创建容器时所指定的生存期 。该规范分别将这种持久性上下文称为 事务范围的持久性上下文 和

  • 有一种方法可以绕过持久性上下文,只将实体用作数据库表的包装器?

  • Vlad关于如何修复MultipleBagsException的示例将是我们的起点:如何修复MultipleBagsException-Vlad Mihalcea EntityManager的定义如下: 那么,为什么我们需要启动事务以便启用PersistenceContext,即使我们将其设置为使用扩展上下文呢?

  • 我正在实施一个项目与rest web service和mongoDB,我将是有用的使用JPA数据库操作。当然,我需要使用Hibernate?,这将是其他一些较轻的框架的最佳选择。数据库是小的几个实体,但许多记录,如果可能的话还会插入图像,如果OpenShift允许的话。在这种情况下,最好用作框架持久性?

  • 如果一次调用<code>会话。保存(customerObject)则不需要插入客户…查询数据库。Hibernate将设置id属性(“序列”或“增量”生成器),并将实体绑定到持久性上下文。当<code>事务时,持久性上下文与数据库同步。调用commit() Q:Hibernate将在哪里设置id属性 Q:在与db同步之前,持久性上下文缓存sql查询是否会插入到customer…中?我的意思是,何时生