3.2.6.3. EntityStates
获取由 ORM 管理的持久化实体信息的接口。与 Persistence 和 PersistenceTools bean 不同,此接口可用于所有层。
EntityStates 接口具有以下方法:
-
isNew()– 确定传递的实例是否是新创建的,即是否在 New 状态。如果此实例实际上处于 Managed 状态但在当前事务中刚被持久化,或者不是持久化实体,也会返回true。 -
isManaged()- 确定传递的实例是否被托管,比如是否添加到持久化上下文。 -
isDetached()– 确定传递的实例是否处于游离状态。如果此实例不是持久化实体,也返回true。 -
isLoaded()- 确定是否从数据库加载了属性。属性已加载:如果属性包含在视图中,或者如果是本地属性并且未向加载机制(EntityManager 或 DataManager)提供视图。此方法只能检查实体的直接属性。 -
checkLoaded()- 与isLoaded()一样,但如果传递给方法的属性中至少有一个未加载,则抛出IllegalArgumentException。 -
isLoadedWithView()- 接收实例和视图作为参数,如果实际加载了视图所需的所有属性,则返回 true。 -
checkLoadedWithView()- 与isLoadedWithView()一样,只不过是抛出IllegalArgumentException而不返回 false。 -
makeDetached()- 接收新创建的实体实例并将其转换为游离状态。游离的对象可以传递给DataManager.commit()或EntityManager.merge()以将其状态保存在数据库中。请参阅 API 文档中的详细信息。 -
makePatch()- 接受新创建的实体实例并使其成为 补丁对象(patch object)。该补丁对象可以传递给DataManager.commit()或EntityManager.merge()以将其状态保存在数据库中。与游离对象不同,补丁对象只保存非空属性。请参阅 API 文档中的详细信息。