Обновление Spring Boot с версии 1.3.2 с версии 1.4.0 приводит к появлению псевдонимов в кортеже результатов!

Я решил обновить приложение Spring Boot с 1.3.2 до 1.4.0. К сожалению, это нарушает почти все мои запросы репозитория JPA, которые я указал с @Query аннотаций.

Например

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: псевдонимы не найдены в кортеже результатов! Убедитесь, что ваш запрос определяет псевдонимы!

Я понятия не имею, что это такое и что изменилось между этими версиями.

Я обнаружил, что это проблема JIRA, но я не использую напрямую версию spring-data-jpa в моем pom.xml, Я использую только spring-boot-starter-parent в версии 1.4.0,

1 ответ

Решение

Проблема заключалась в том, что я использовал DateTime от йода. Переход на JDK 8 типов даты и времени (ZonedDateTime) и обновление до Hibernate 5.2.2. Наконец-то решена проблема.

На самом деле Oliver Gierke помог в этой дискуссии.

Другие вопросы по тегам