Java 在spring引导从2.1升级到2.3后,Querydsl产生不支持的操作异常

Java 在spring引导从2.1升级到2.3后,Querydsl产生不支持的操作异常,java,spring,spring-boot,querydsl,Java,Spring,Spring Boot,Querydsl,我的项目使用的是querydsl 4.1.3和spring boot 2.1.x 升级到querydsl 4.4和spring boot 2.3.x后,出现以下错误: 2020-11-19 18:24:22.683 ERROR 26060 --- [ XNIO-1 task-2] io.undertow.request : UT005023: Exception handling request to /eaud/login java.lang.U

我的项目使用的是querydsl 4.1.3和spring boot 2.1.x 升级到querydsl 4.4和spring boot 2.3.x后,出现以下错误:


2020-11-19 18:24:22.683 ERROR 26060 --- [  XNIO-1 task-2] io.undertow.request                      : UT005023: Exception handling request to /eaud/login

java.lang.UnsupportedOperationException: null
    at java.util.Collections$UnmodifiableMap.put(Collections.java:1457)
    at com.querydsl.jpa.JPQLSerializer.visitConstant(JPQLSerializer.java:327)
    at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:221)
    at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:36)
    at com.querydsl.core.types.ConstantImpl.accept(ConstantImpl.java:140)
    at com.querydsl.core.support.SerializerBase.handle(SerializerBase.java:122)
    at com.querydsl.core.support.SerializerBase.visitOperation(SerializerBase.java:301)
    at com.querydsl.jpa.JPQLSerializer.visitOperation(JPQLSerializer.java:437)
    at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:262)
    at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:36)
    at com.querydsl.core.types.OperationImpl.accept(OperationImpl.java:83)
    at com.querydsl.core.support.SerializerBase.handle(SerializerBase.java:122)
    at com.querydsl.jpa.JPQLSerializer.serialize(JPQLSerializer.java:220)
    at com.querydsl.jpa.JPAQueryBase.serialize(JPAQueryBase.java:60)
    at com.querydsl.jpa.JPAQueryBase.serialize(JPAQueryBase.java:50)
    at com.querydsl.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:98)
    at com.querydsl.jpa.impl.AbstractJPAQuery.fetchOne(AbstractJPAQuery.java:252)
    at br.gov.cgu.eaud.negocio.auth.UsuarioRepository.getPorCpfSeExistir(UsuarioRepository.java:63)
产生错误的查询非常简单:

private QUsuario usuario=QUsuario.usuario;
公用Usuario GetProcPfseExistir(字符串cpf){
返回getJPAQuery()
.选择(此.usuario)
.来自(本.乌萨里奥)
.其中(本通用cpf.eq(cpf))
.fetchOne();
}
getJPAQuery方法是一个简单的
返回新的JPAQueryFactory(this.getEntityManager())

我尝试过使用SpringBoot2.3附带的版本,即querydsl:4.3.1,但它也不起作用。版本4.1.3也不起作用


有什么线索可以说明是什么原因吗?

好的,在清理了maven的缓存后解决了这个问题。。。看起来好像它没有根据我的POM更新我的项目。

我认为querydsl core和querydsl jpa之间的版本不匹配。你两个都升到4.4.0了吗?@Jan Willemgmeyling是的=/能否通过运行
SerializerBase.class.getPackage().getImplementationVersion()
JPQLSerializer.class.getPackage().getImplementationVersion()
进行验证?这确实是我们经常看到的一个问题,即用户不同时使用两个依赖项(或者由于可传递依赖项,将一个依赖项替换为较低版本的依赖项)。此外,您还可以使用
mvn dependency:tree
验证使用的版本。好的,在清理my maven的缓存后解决它。。。看起来好像不是根据我的POM更新的。非常感谢。很高兴它现在起作用了!