JSR303是Java体系的约束规范,Hibernate-Validator是基于JSR303的实现,
Jakarta引入Hibernate-Validator经过包名替换使用Hibernate-Validator。
定义POJO的约束条件
jakarta.validation是基于Hibernate Validated进行封装,
底层实现是基于hibernate-validator。
import jakarta.validation.constraints.Min;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Buyer {
public String id;
public String name;
@Min(100)
public float price;
}
缺少 Hibernate Validator Jar
jakarta.validation.NoProviderFoundException:
Unable to create a Configuration, because no
Jakarta Bean Validation provider could be found.
Add a provider like Hibernate Validator (RI) to your classpath.
Field error in object 'bookorder.buyer[0]'
on field 'price': rejected value [20.0];
codes [Min.bookorder.buyer[0].price,Min.price,Min.float,Min];
arguments [org.springframework.context.support.DefaultMessageSourceResolvable:
codes [bookorder.buyer[0].price,price]; arguments [];
default message [price],100]; default message [最小不能小于100];
origin class path resource [application-order.yml]
加载hibernate-validator
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>8.0.0.Final</version>
</dependency>
YML文件
bookorder:
orderID: ${random.int}
orderName: "TSL order bill"
des: "a good car"
time:
type: DateTime<'Y-m-d H:i:s'>
groups: [detailed]
buyer:
- id: 1
name: Claire
price: 20
- id: 2
name: Jeff
price: 30
修正数据
price: 200
price: 300