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 文档中的详细信息。