【问题标题】:Upgrading Spring Boot from 1.3.2 from 1.4.0 causes "No aliases found in result tuple!"从 1.4.0 升级 Spring Boot 从 1.3.2 会导致“在结果元组中找不到别名!”
【发布时间】:2016-08-15 21:30:19
【问题描述】:

我决定将我的 Spring Boot 应用程序从 1.3.2 升级到 1.4.0。不幸的是,这破坏了我使用 @Query 注释指定的几乎所有 JPA 存储库查询。

例如

public interface MatchRepository extends JpaRepository<Match, MatchKey> {
    // ...
    @Query("SELECT min(m.hourOfTheMatch) FROM Match m WHERE m.primaryKey.matchday = :matchday")
    DateTime getFirstMatchStartDateTime(Matchday matchday);
    // ...
}

在这种情况下,MatchKey@EmbeddableId,但我认为这不是根本情况。

查询以运行时异常结束。

原因:java.lang.IllegalStateException:在结果元组中找不到别名!确保您的查询定义了别名!

我不知道这是什么以及这些版本之间发生了什么变化。

我发现的是this JIRA 问题,但我没有在pom.xml 中直接使用spring-data-jpa 的版本。我在1.4.0 版本中只使用spring-boot-starter-parent

【问题讨论】:

    标签: hibernate spring-boot spring-data-jpa


    【解决方案1】:

    问题是我使用的是 Joda 的 DateTime。切换到 JDK 8 日期和时间类型 (ZonedDateTime) 并升级到 Hibernate 5.2.2.Final 解决了这个问题。

    事实上,Oliver Gierkethis 的讨论中提供了很多帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 2016-12-16
      • 2016-12-23
      • 2014-12-04
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多