У меня проблема с проверкой моего бина. Я использую Quarkus с MongoDB, и когда я пытаюсь запустить API REST create с @Valid
аннотацией перед компонентом запроса, я ожидаю исключения, если я хочу создать документ с полем null
(очевидно, я использую @NotNull
в сущности), но документ создается без поля. Вот мой код:
Car. 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
}
CarResource. 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)
? Я хочу уникальное поле для моего приложения.