在测试querydsl中的可空性后等同于值

时间:2018-06-14 12:06:39

标签: java spring-data-jpa querydsl

我正在使用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}

你可以帮我解决这个例外吗?

1 个答案:

答案 0 :(得分:1)

异常似乎说hasName的参数为null。尝试:

return name==null ? QPerson.name.isNull() : QPerson.name.eq(name);