首页 > 解决方案 > 通过抛出异常将 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

标签: javaspring-data-jpa

解决方案


这是在属性的第二个字符为大写时解析 OrderBy 子句时的错误。

您应该使用 Spring Data JPA 提交错误报告:

https://jira.spring.io/projects/DATAJPA/issues/DATAJPA-1397?filter=allopenissues

同时,您必须更改属性名称或将查询写入@Query 注释。


推荐阅读