Java PersistenceUtil.isLoaded是什么意思?
有人能解释一下在JPA和hibernate的上下文中PersistenceUtil.isLoaded返回了什么吗。 我的印象是,它标识是否加载了值,是否可以在不访问数据库的情况下访问该值。但最近我遇到了一个例子,PesistenceUtil.isLoaded返回true,而对象是HibernateProxy的实例,对它的任何访问都会带来谎言。Java PersistenceUtil.isLoaded是什么意思?,java,hibernate,jpa-2.0,Java,Hibernate,Jpa 2.0,有人能解释一下在JPA和hibernate的上下文中PersistenceUtil.isLoaded返回了什么吗。 我的印象是,它标识是否加载了值,是否可以在不访问数据库的情况下访问该值。但最近我遇到了一个例子,PesistenceUtil.isLoaded返回true,而对象是HibernateProxy的实例,对它的任何访问都会带来谎言。 如果您有任何意见,我将不胜感激。方法已在PersistenceUtil中加载检查是否已加载实体。正在加载的实体意味着所有急切的属性都是从数据库加载或由应用
如果您有任何意见,我将不胜感激。方法已在PersistenceUtil中加载检查是否已加载实体。正在加载的实体意味着所有急切的属性都是从数据库加载或由应用程序分配的。在JPA 2.0规范中,这是通过以下文字来说明的: 如果所有属性都具有 FetchType.EAGER—无论是明确指定还是默认设置—(包括 关系和其他集合值属性)已加载 从数据库或由应用程序分配。属性与 FetchType.LAZY可能已加载,也可能未加载
有关详细说明,请参阅JPA 2.0规范,3.2.9加载状态。它加载了HibernateProxy,这一事实使我认为这个特定实体的加载策略可能是“懒惰的”。因此,JPA可能不知道Hibernate加载了一个代理来代替完整的对象。