在Spring Boot Applicaion中,我有Task一个状态在执行期间发生变化的实体:
@Entity
public class Task {
public enum State {
PENDING,
RUNNING,
DONE
}
@Id @GeneratedValue
private long id;
private String name;
private State state = State.PENDING;
// Setters omitted
public void setState(State state) {
this.state = state; // THIS SHOULD BE WRITTEN TO THE DATABASE
}
public void start() {
this.setState(State.RUNNING);
// do useful stuff
try { Thread.sleep(2000); } catch(InterruptedException e) {}
this.setState(State.DONE);
}
}
Run Code Online (Sandbox Code Playgroud)
如果状态发生更改,则应将对象保存在数据库中.我正在使用这个Spring Data接口作为存储库:
public interface TaskRepository extends CrudRepository<Task,Long> {}
Run Code Online (Sandbox Code Playgroud)
而这段代码创建并启动Task …