我有一个使用Spring Data for Couchbase的springBoot 2.1.9.RELEASE应用程序

我有这个对象

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Hostel<T> {

    @NotNull
    @JsonProperty("_location")
    private T location;

}

还有另外一个
@Document
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(of = { "id" })
@Builder
public class HTMDoc {

    @Id
    private String id;
    @NotNull
    @Field
    private Hostel hostel;

}

在服务上
public HTMDoc create(@Valid HTMDoc doc) {
    return repository.save(doc);
}

在测试中
service.create(new HTMDoc());

但是当我保存时,出现此错误,而不是旅馆字段中的验证NotNull
 org.springframework.data.mapping.MappingException: An ID property is needed, but not found/could not be generated on this entity.

最佳答案

您需要在服务类上使用@org.springframework.validation.annotation.Validated批注以启用验证。

@Validated
@Service
public class DocService {
  public HTMDoc create(@Valid HTMDoc doc) {
    return repository.save(doc);
  }
}

07-24 13:07