小编Pil*_*lle的帖子

具有 JPA 持久性的 Spring 状态机 - 存储库使用

我试图弄清楚如何轻松使用 Spring 状态机,包括使用 JPA 进行持久化。这是我正在处理的问题:

不兼容的数据类型 - 工厂和持久性

在程序的某个时刻,我想使用连接到用户的状态机。有用于此目的的存储库(项目spring-statemachine-data-jpa)。首先,使用存储库检查玩家的状态机是否已存在。如果没有,则创建一个新的状态机并保留它。

问题是我有不同类型的状态机。工厂创建一个StateMachine<UserState, UserEvent>,存储库返回一个JpaRepositoryStateMachine。这些彼此不兼容,对我来说,不清楚如何持久/创建/恢复状态机。

你能为我澄清一下吗?

@Autowired
private StateMachineRepository<JpaRepositoryStateMachine> repository;

public someMethod(User user) {

Optional<JpaRepositoryStateMachine> stateMachine = repository.findById(user.getId()); // JPA state machine

if(stateMachine.isEmpty()) {
            StateMachine<UserState, UserEvent> createdStateMachine = factory.getStateMachine(user.getId()); // spring state machine
            repository.save(createdStateMachine); // compile error
        }

// here: ready-to-use statemachine - how?

}
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

java spring spring-data-jpa spring-boot spring-statemachine

5
推荐指数
1
解决办法
5301
查看次数