问题描述 投票:0回答:0

我正在尝试将应用程序从 Spring Boot 3.0.6 升级到 3.1.0。这反过来意味着升级 从 Hibernate 6.1.7 到 6.2.2。以前,此查询有效:

public interface UserRoleRepository extends CrudRepository<UserRole, UUID> {

    @Query("""
        from UserRole ur
        where ur.user.id = :userId
        order by ur.mostRecentlyUsed desc nulls last""")
    List<UserRole> getUserRoles(UUID userId);
}

但是升级后,它抛出一个

org.springframework.data.jpa.repository.query.BadJpqlGrammarException

第 3:34 行不匹配的输入 'nulls' 期望 {, ',', EXCEPT, FETCH, INTERSECT, LIMIT, OFFSET, UNION};错误的 JPQL 语法 [来自 UserRole ur 其中 ur.user.id = :userId

我已经确认

nulls last
语法是问题所在。我检查了Hibernate 6.2 迁移指南,它没有提到任何关于
nulls last
(或
nulls first
)的内容。有没有我可以使用的东西会产生相同的结果,即在列表末尾放置带有空
mostRecentlyUsed
的行?

java hibernate jpa spring-data-jpa jpql
© www.soinside.com 2019 - 2024. All rights reserved.