Я использую 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
?Это ошибка данных весны?
Спасибо за помощь.