在升级到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也不起作用。
有什么线索可以说明是什么原因吗?
1条答案
按热度按时间oxalkeyp1#
好吧,在清理了maven的缓存后解决了。。。看起来好像它没有根据我的pom更新我的项目。