¿Cómo recuperar y encontrar el estado actual en Spring State Machine?

Estoy creando un proyecto que necesita un FSM y elijo Spring State Machine para ayudarme a resolver el problema. Estoy usando JPA y trato de averiguar cómo iniciar la máquina de estado en function de mi estado actual al recuperar el estado de un repository de JPA. Encontré en la documentation este enfoque: la máquina de estado persiste

Pero también estoy confundido acerca de este enfoque: máquina de estado persistente

No bash persistir en la configuration de todas las máquinas de estados, sino solo iniciar y enviar events en function del estado de mi entidad. pero en ambos casos no sé cómo poner el repository jpa para encontrar mi estado actual.

Ahora estoy probando este enfoque:

class StateMachineAdapter<S, E, T> { lateinit var stateMachineFactory: StateMachineFactory<S, E> lateinit var persister: StateMachinePersister<S, E, T> fun stateMachineRestore(contextObject: T): StateMachine<S, E> { val stateMachine: StateMachine<S, E> = stateMachineFactory.getStateMachine() return persister.restre(stateMachine, contextObject) } fun persist(stateMachine: StateMachine<S, E>, contestation: T) { persister.persist(stateMachine, contestation) } fun create(): StateMachine<S, E> { val stateMachine: StateMachine<S, E> = stateMachineFactory.getStateMachine() stateMachine.start() return stateMachine } } 

Encontré este fragment de código en la documentation de Spring, y pensé que podría replacese con JpaRepository:

 public void change(int order, String event) { Order o = jdbcTemplate.queryForObject("select id, state from orders where id = ?", new Object[] { order }, new RowMapper<Order>() { public Order mapRow(ResultSet rs, int rowNum) throws SQLException { return new Order(rs.getInt("id"), rs.getString("state")); } }); handler.handleEventWithState(MessageBuilder.withPayload(event).setHeader("order", order).build(), o.state); } 

Esto de hecho ha sido bastante incómodo al usar la funcionalidad existente, ya que hay muchas partes mobilees, como probablemente haya visto en muestras y documentos.

Actualmente estoy trabajando para revisar todo esto en la próxima versión 1.2.8 para facilitar la persistencia. Si está dispuesto a usar instantáneas (en la twig 1.2.x) hasta que 1.2.8 esté desactivado, entonces comience por verificar la nueva muestra de muestra de datosjpapersist . Basado en los mismos conceptos que el almacenamiento de configuraciones, pero con nuevas classs persistentes en spring-statemachine-data . También problemas alnetworkingedor de este 1.2.8 gh .

Sería bueno get algunos comentarios sobre esto.