querydsl在SpringBoot从2.1升级到2.3后产生unsupportedoperationexception

31moq8wy  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(474)

在升级到querydsl 4.4和spring boot 2.3.x之后,我的项目使用的是querydsl 4.1.3和spring boot 2.1.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;

  public Usuario getPorCpfSeExistir(String cpf) {
        return getJPAQuery()
                .select(this.usuario)
                .from(this.usuario)
                .where(this.usuario.cpf.eq(cpf))
                .fetchOne();
    }

getjpaquery方法是一个简单的 return new JPAQueryFactory(this.getEntityManager()); 我试过使用SpringBoot2.3的版本,querydsl:4.3.1,但也不行。版本4.1.3也不起作用。
有什么线索可以说明是什么原因吗?

oxalkeyp

oxalkeyp1#

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

相关问题