有人可以解释一下PersistenceUtil.isLoaded在JPA和hibernate的上下文中返回什么。 我的印象是它确定了值是否已加载并且可以在没有数据库访问的情况下访问。但最近我遇到了一个PesistenceUtil.isLoaded返回true的情况,而该对象是HibernateProxy的一个实例,对它的任何访问都会抛出一个LIE。 我将不胜感激。
答案 0 :(得分:2)
PersistenceUtil中的方法isLoaded检查是否已加载实体。正在加载的实体意味着所有渴望的属性都是从数据库加载或由应用程序分配的。在JPA 2.0规范中,用以下词语告知:
如果所有属性都包含,则认为实体已加载 FetchType.EAGER - 无论是明确指定还是默认 - (包括 已加载关系和其他集合值属性) 从数据库或由应用程序分配。属性与 可能已加载或未加载FetchType.LAZY。
有关详细说明,请参阅 JPA 2.0规范,3.2.9加载状态。