org.hibernate.validator
hibernate-validator
6.2.0.Final
org.springframework.boot
spring-boot-starter-validation
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown=true)
public class ThirdAlarmInfoRequest {
/**
* 报警id
*/
@NotNull(message = "报警id为空",groups = {Add.class})
private Long alarmId;
/**
* 报警时间
*/
@NotNull(message = "报警时间为空",groups = {Add.class})
private Date alarmTime;
/**
* 报警州市
*/
@org.hibernate.validator.constraints.NotBlank(message = "报警州市为空",groups = {Add.class})
// @NotBlank(message = "报警州市为空",groups = {Add.class})
private String alarmCity;
@PostMapping("/batchAdd")
public RestResult batchAdd(@Validated(Add.class) @RequestBody ValidList alarmRequest) throws BusinessException {
logger.info("thirdAlarmInfoController.batchAdd.param:{}", JSONObject.toJSONString(alarmRequest));
Long rows = thirdAlarmInfoService.batchAdd(alarmRequest);
return RestResult.createSuccessfulResult(rows);
}
import javax.validation.Valid;
import java.util.*;
/**
* @author
* @describe:
* @date 2025/3/19
*/
public class ValidList implements List {
@Valid
private List list = new LinkedList<>();
@Override
public int size() {
return list.size();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public boolean contains(Object o) {
return list.contains(o);
}
@Override
public Iterator iterator() {
return list.iterator();
}
@Override
public Object[] toArray() {
return list.toArray();
}
@Override
public T[] toArray(T[] a) {
return list.toArray(a);
}
@Override
public boolean add(E e) {
return list.add(e);
}
@Override
public boolean remove(Object o) {
return list.remove(o);
}
@Override
public boolean containsAll(Collection> c) {
return list.containsAll(c);
}
@Override
public boolean addAll(Collection extends E> c) {
return list.addAll(c);
}
@Override
public boolean addAll(int index, Collection extends E> c) {
return list.addAll(index, c);
}
@Override
public boolean removeAll(Collection> c) {
return list.removeAll(c);
}
@Override
public boolean retainAll(Collection> c) {
return list.retainAll(c);
}
@Override
public void clear() {
list.clear();
}
@Override
public E get(int index) {
return list.get(index);
}
@Override
public E set(int index, E element) {
return list.set(index, element);
}
@Override
public void add(int index, E element) {
list.add(index, element);
}
@Override
public E remove(int index) {
return list.remove(index);
}
@Override
public int indexOf(Object o) {
return list.indexOf(o);
}
@Override
public int lastIndexOf(Object o) {
return list.lastIndexOf(o);
}
@Override
public ListIterator listIterator() {
return list.listIterator();
}
@Override
public ListIterator listIterator(int index) {
return list.listIterator(index);
}
@Override
public List subList(int fromIndex, int toIndex) {
return list.subList(fromIndex, toIndex);
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
}
/**
* 批量新增三方报警数据
*/
@PostMapping("/batchAdd")
public RestResult batchAdd(@RequestBody List alarmRequest) throws BusinessException {
validateList(alarmRequest, Add.class);
logger.info("thirdAlarmInfoController.batchAdd.param:{}", JSONObject.toJSONString(alarmRequest));
Long rows = thirdAlarmInfoService.batchAdd(alarmRequest);
return RestResult.createSuccessfulResult(rows);
}
/**
* 校验List,逐个校验每个元素
*
* @param list 校验的参数
* @param clazz 检验分组 可传多个
*/
public void validateList(List> list, Class>... clazz) throws BusinessException {
StringBuilder errorMessage = new StringBuilder("列表校验失败:");
// 遍历列表,逐个校验每个元素
for (Object element : list) {
// 校验元素本身
Set> violations = validator.validate(element, clazz);
// 收集错误信息
if (!violations.isEmpty()) {
for (ConstraintViolation
参数校验:https://blog.csdn.net/Ying_ph/article/details/142938025?fromshare=blogdetail&sharetype=blogdetail&sharerId=142938025&sharerefer=PC&sharesource=johnrui&sharefrom=from_link
参数校验:https://blog.csdn.net/qq_27298687/article/details/104423409
jy: https://blog.csdn.net/weixin_43264955/article/details/144430279?fromshare=blogdetail&sharetype=blogdetail&sharerId=144430279&sharerefer=PC&sharesource=johnrui&sharefrom=from_link