Java 使用子字段版本的Spring数据的乐观锁定
我知道,如果我将@Version注释作为字段直接包含在类中以进行持久化,那么乐观锁定是开箱即用的。但是,我不想更改我的数据模型,我正在尝试下面描述的解决方案。 在Spring Data MongoDB REST应用程序中,实体的数据模型如下所示: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")
@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的情况下,我可以选择是否将元数据作为单独的文档。