我正在使用querydsl
spring-data-jpa
。从我的其余控制器检索值时,它可以是null
,也可以不是@Entity
class Person {
@Id private String name;
private int age;
}
。让我们假设我有以下课程:
BooleanExpression
我创建了一个public static final BooleanExpression hasName(String name) {
return QPerson.name.isNotNull().and(QPerson.name.eq(name));
}
,如下所示:
PersonRepository#findAll(...)
当java.lang.IllegalArgumentException: eq(null) is not allowed. Use isNull() instead
at com.querydsl.core.types.dsl.SimpleExpression.eq(SimpleExpression.java:127) ~[querydsl-core-4.1.4.jar:na]
执行此操作时,抛出以下异常:
CERTDIR=folder1
SPOOLDIR=folder2
URL="http://..."
FILENAME="$SPOOLDIR/latest.xml.gz"
/usr/bin/wget \
-N \
--quiet \
--private-key=${CERTDIR}/keynopass.pem \
--ca-certificate=${CERTDIR}/ca.pem \
--certificate=${CERTDIR}/client.pem \
"$URL" \
--output-document ${FILENAME}
你可以帮我解决这个例外吗?
答案 0 :(得分:1)
异常似乎说hasName的参数为null。尝试:
return name==null ? QPerson.name.isNull() : QPerson.name.eq(name);