我正在尝试将应用程序从 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
的行?