Java 应用程序持久层构建与无状态服务器开发
1. 持久层的创建
在开发过程中,创建持久层是关键的一步。首先,我们来看 checkVersion
方法的实现:
public void checkVersion(T entity, boolean forceUpdate) {
em.lock(
entity,
forceUpdate
? LockModeType.OPTIMISTIC_FORCE_INCREMENT
: LockModeType.OPTIMISTIC
);
}
此方法用于检查实体的版本,根据 forceUpdate
参数的值选择不同的锁定模式。
在实现 makePersistent()
方法时,我们选择了 EntityManager#merge()
,因为它具有很强的通用性。如果传入的参数是一个临时实体实例,合并操作会返回一个持久化实例;如果是分离的实体实例,合并操作同样会返回一个持久化实例。这为客户端提供了一致的 API,客户端在调用 makePersistent()
之前无需担心实体实例的状态。不过,客户端需要注意, makePersistent()
的返回值始终是当前实例,传入的参数应该被丢弃。
完成持久层的基本构建和向系统上层暴露的通用接口后,下一步是通过扩展通用接口和实