Метод запроса данных Spring игнорирует параметр типа Class - PullRequest
0 голосов
/ 01 июня 2018

Я использую spring-data-jpa 2.0.7.RELEASE, spring-core 5.0.6.RELEASE, hibernate 5.2.17.Final и java 8.

У меня есть класс репозитория сМетод запроса, который принимает параметр типа Class.Например:

public interface MyEntityRepository extends Repository<MyEntity, Integer>{

    @Query("select m from MyEntity m "
            + "where TYPE(m) = :myEntityClass "
            + "and m.attribute1 = :attribute1 ")
    List<MyEntityClass> findByClassAndAttribute1(
            @Param("myEntityClass") Class<? extends MyEntity> myEntityClass, 
            @Param("attribute1") boolean attribute1);
}

MyEntity - это абстрактный класс с тремя подклассами, и он сопоставляется с @Inheritance и @DiscriminatorColumn.

Проблема заключается в том, что данные Springне задан параметр myEntityClass в запросе Hibernate, но он устанавливает логический параметр attribute1.

Вот сообщение об ошибке, которое я получаю из hibernate:

org.hibernate.QueryException: Named parameter [myEntityClass] not set

Как тестЯ удалил параметр myEntityClass и запрос выполняется без ошибок.Кроме того, тот же метод запроса, который использовался для работы с spring-data-jpa 1.9.5.RELEASE.

Почему не установлен параметр myEntityClass?Это ошибка данных весны?

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...