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