JpaSort.unsafe 抛出异常

Oli*_*hua 6 hibernate spring-data spring-boot

使用 Spring Boot 和 Spring Data。使用JpaSort.unsafe但出现异常。这是一个已知的 Spring 问题吗?Hibernate/JPA 问题?谢谢。

行家:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
</parent>
Run Code Online (Sandbox Code Playgroud)

实体:

public class Simple {
    @Id
    private Long id;
    private String firstName;
    ...
}
Run Code Online (Sandbox Code Playgroud)

存储库方法:

public List<Simple> findAll(Sort sort);
Run Code Online (Sandbox Code Playgroud)

春季测试类:

    list = simpleRepository.findAll(JpaSort.unsafe("LENGTH(firstName)"));
    assertEquals("firstName", list.get(0).getFirstName());
Run Code Online (Sandbox Code Playgroud)

例外:

org.springframework.data.mapping.PropertyReferenceException: No property LENGTH(firstName) found for type Simple!
Run Code Online (Sandbox Code Playgroud)

小智 3

就我而言,添加@Query到存储库类方法有助于解决此问题。我不明白为什么。如果对你有帮助你可以试试

@Query("SELECT s FROM Simple s")
Run Code Online (Sandbox Code Playgroud)