等于:criteriaBuilder.equal

Predicate countryPredicate = criteriaBuilder.equal(root.get(“name”), “小明”);

and 和 or 查询

criteriaBuilder.and(predicates.toArray(Predicate对象,Predicate对象)

criteriaBuilder.or(predicates.toArray(Predicate对象,Predicate对象))

大于:criteriaBuilder.greaterThan

criteriaBuilder.greaterThan(root.get(“name”), 3);

小于:criteriaBuilder.lessThan

大于等于:criteriaBuilder.greaterThanOrEqualTo

小于等于:criteriaBuilder.lessThanOrEqualTo

相似查询:criteriaBuilder.like

Specification spec = (Specification) (root, criteriaQuery, criteriaBuilder) -> {

Predicate p = criteriaBuilder.like(root.get(“name”), “%” + “小明” + “%”);

return p;

};

/**
* 判断字符串是否为数字
*
* @param str String
* @return Boolean
*/
public static Boolean isNumeric(String str) {
//?:0或1个, *:0或多个, +:1或多个 支持判断正负、整数小数
return str.matches("-?[0-9]+.?[0-9]*");
}

java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.writev0(Native Method) at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)

出现这种问题,一般有以下几种情况

  1. 客户端请求服务器数据,服务器突然挂了
  2. 客户端请求服务端数据,服务端返回正常。但客户端由于连接超时或者其他原因断开导致服务端无法返回通道导致

通过traceid找到这个异常导致的下一个异常

java.io.IOException: UT010029: Stream is closed
at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:138)

这个就很明显了是第二中情况,客户端问题导致了Stream is closed