Java 使用子字段版本的Spring数据的乐观锁定

Java 使用子字段版本的Spring数据的乐观锁定,java,rest,spring-data,spring-data-mongodb,spring-data-rest,Java,Rest,Spring Data,Spring Data Mongodb,Spring Data Rest,我知道,如果我将@Version注释作为字段直接包含在类中以进行持久化,那么乐观锁定是开箱即用的。但是,我不想更改我的数据模型,我正在尝试下面描述的解决方案。 在Spring Data MongoDB REST应用程序中,实体的数据模型如下所示: @Document public class Person { @Id @JsonProperty(value = "id") String id; @JsonProperty(value = "firstName")

我知道,如果我将@Version注释作为字段直接包含在类中以进行持久化,那么乐观锁定是开箱即用的。但是,我不想更改我的数据模型,我正在尝试下面描述的解决方案。 在Spring Data MongoDB REST应用程序中,实体的数据模型如下所示:

@Document
public class Person {

    @Id
    @JsonProperty(value = "id")
    String id;
    @JsonProperty(value = "firstName")
    String firstName;
    @JsonProperty(value = "lastName")
    String lastName;
    @JsonProperty(value="metadata")
    MetaData metaData;

    //GETTER AND SETTERS

}
我的目的是注释元数据类的字段版本,以便在类Person中使用乐观锁定

public class MetaData {

    @JsonProperty(value = "createdAt")
    private String createdAt;

    @JsonProperty(value = "createdBy")
    private String modifiedAt;

    @JsonProperty(value = "createdAt")
    private String createdAt;

    @JsonProperty(value = "createdBy")
    private String modifiedAt;

    @JsonProperty(value = "version")
    @Version
    private Integer version;

//GETTERS AND SETTERS
}
上述解决方案不起作用。有什么办法可以实现吗?
提前感谢。

您需要确保
WriteConcern
设置为
已确认

元数据和人员是从JSON文件生成的。在使用MongoDB的情况下,我可以选择是否将元数据作为单独的文档。