2016-08-15 10 views
0

私はSpring Boot Appを1.3.2から1.4.0にアップグレードすることに決めました。残念ながら、これは私が@Query注釈で指定した私のJPAリポジトリのクエリのほとんどを壊してしまいます。例えば1.4.2から1.3.2へのSpringブートをアップグレードすると、「結果タプルにエイリアスが見つかりません!」

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ですが、私はpom.xmlspring-data-jpaのバージョンを直接使用していません。バージョン1.4.0ではspring-boot-starter-parentのみを使用しています。

答えて

0

問題は私が012odaを使用していたことでした。 JDK 8の日付と時刻のタイプ(ZonedDateTime)への切り替えとHibernate 5.2.2へのアップグレード。最終的に問題は解決しました。

実際にOliver Gierkeは、thisのディスカッションに多くを助けました。

関連する問題