我的 bean 验证有问题。我将 Quarkus 与 MongoDB 一起使用,当我尝试@Valid
在请求 bean 之前运行带有注释的创建 REST API 时,如果我想创建带有null
字段的文档(显然我@NotNull
在实体中使用),我预计会出现异常,但创建的文档没有场地。这是我的代码:
汽车.java:
@MongoEntity(collection="cars")
public class Car extends PanacheMongoEntityBase {
@BsonId
private long id;
@NotNull
private String carName;
@NotNull
@Size(min = 1, max = 3)
private String code;
// get and set
}
汽车资源.java:
@Path("/cars")
@Consumes("application/json")
@Produces("application/json")
public class CarResource {
@GET
public List<Car> list() {
return Car.listAll();
}
@GET
@Path("/{id}")
public Car get(long id) {
return Car.findById(id);
}
@POST
public Response create(@Valid Car car) {
car.persist();
return Response.status(201).build();
}
我对注释有同样的问题@Size
,因为我可以创建一个code
字符数超过 3 个的字段。
更新
验证适用于 quarkus-hibernate-validator。
现在,我必须为独特的领域找到解决方案。
除了主要问题之外:是否有类似的注释@Indexed(unique = true)
?我想为我的应用设置一个独特的字段。