java - 通过抛出异常将 spring-data-jpa 升级到 1.11.13.RELEASE 顺序
问题描述
我将spring-data-jpa 升级到 1.11.13.RELEASE,因为这个提交:https ://github.com/spring-projects/spring-data-commons/commit/5f87c6766863072d761cb02f278b13c8631e655f ,
这种方法:
List<AppVersion> findByDeviceAndPlatformAndIVersionGreaterThanOrderByIVersionDesc(Device device,App app,Integer versioncode);
订单找不到该属性,这是该属性:
private Integer iVersion;
抛出这个异常:
Caused by: java.lang.IllegalArgumentException:
Unable to locate Attribute with the the given name [IVersion] on this
ManagedType [cn.com.open.entity.BaseEntityRoot] at
org.hibernate.metamodel.internal.AbstractManagedType.checkNotNull(AbstractManageType.java:128)
at
org.hibernate.metamodel.internal.AbstractManagedType.getAttribute(AbstractManagedType.java:113)
at
org.hibernate.metamodel.internal.AbstractManagedType.getAttribute(AbstractManagedType.java:111)
at
org.hibernate.metamodel.internal.AbstractManagedType.getAttribute(AbstractManagedType.java:111)
at
org.springframework.data.jpa.repository.query.QueryUtils.toExpressionRecursively(QueryUtils.java:571)
at
org.springframework.data.jpa.repository.query.QueryUtils.toJpaOrder(QueryUtils.java:548)
at
org.springframework.data.jpa.repository.query.QueryUtils.toOrders(QueryUtils.java:501)
at
org.springframework.data.jpa.repository.query.JpaQueryCreator.complete(JpaQueryCreator.java:195)
at
org.springframework.data.jpa.repository.query.JpaQueryCreator.complete(JpaQueryCreator.java:143)
at
org.springframework.data.jpa.repository.query.JpaQueryCreator.complete(JpaQueryCreator.java:52)
at
org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:88)
at
org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:73)
at
org.springframework.data.jpa.repository.query.PartTreeJpaQuery$QueryPreparer.<init>(PartTreeJpaQuery.java:133)
at
org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:72)
... 52 common frames omitted
解决方案
这是在属性的第二个字符为大写时解析 OrderBy 子句时的错误。
您应该使用 Spring Data JPA 提交错误报告:
https://jira.spring.io/projects/DATAJPA/issues/DATAJPA-1397?filter=allopenissues
同时,您必须更改属性名称或将查询写入@Query 注释。