JPA-запрос с сортировкой по ElementCollection дает UnsupportedOperationExceptionJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JPA-запрос с сортировкой по ElementCollection дает UnsupportedOperationException

Сообщение Anonymous »


Когда существует сущность, имеющая поле ElementCollection простого типа, и при попытке выполнить запрос с использованием сортировки этого поля возникает UnsupportedOperationException публичный класс SomeParent { @ElementCollection частные ключевые слова List; } общедоступный интерфейс SomeParentRepository расширяет JpaRepository, JpaSpecificationExecutor { @Query("выберите sp из SomeParent sp") Страница findBySomething (постраничная страница); } Вызов пользовательского запроса с сортировкой по полям выдает ошибку:

var pageable = PageRequest.of(0, 20, Sort.by("ключевые слова")); someParentRepository.findBySomething(pageable); Однако вызов findAll() (с сортировкой по полю) работает нормально:

var pageable = PageRequest.of(0, 20, Sort.by("ключевые слова")); someParentRepository.findAll(pageable); а также вызов пользовательского запроса без сортировки работает нормально.

var pageable = PageRequest.of(0, 20); someParentRepository.findBySomething(pageable); Я попробовал добавить в поле @OrderBy, но это не помогло.

Я надеюсь, что есть другой способ, кроме использования спецификации, поскольку реальный запрос имеет больше параметров.
java.lang.UnsupportedOperationException: нулевой в org.hibernate.query.sqm.sql.internal.PluralValuedSimplePathInterpretation.accept(PluralValuedSimplePathInterpretation.java:72) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitSortSpecification(AbstractSqlAstTranslator.java:3764) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitSortSpecification(AbstractSqlAstTranslator.java:3745) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.renderOrderBy(AbstractSqlAstTranslator.java:3351) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitOrderBy(AbstractSqlAstTranslator.java:3335) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitQuerySpec(AbstractSqlAstTranslator.java:3086) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.dialect.PostgreSQLSqlAstTranslator.visitQuerySpec(PostgreSQLSqlAstTranslator.java:186) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.tree.select.QuerySpec.accept(QuerySpec.java:119) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.visitSelectStatement(AbstractSqlAstTranslator.java:988) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.translateSelect(AbstractSqlAstTranslator.java:851) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.sql.ast.spi.AbstractSqlAstTranslator.translate(AbstractSqlAstTranslator.java:801) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.buildCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:372) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:268) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:244) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:518) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:367) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.hibernate.query.Query.getResultList(Query.java:119) ~[hibernate-core-6.2.13.Final.jar:6.2.13.Final] в org.springframework.data.jpa.repository.query.JpaQueryExecution$PagedExecution.doExecute(JpaQueryExecution.java:204) ~[spring-data-jpa-3.1.5.jar:3.1.5] в org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92) ~[spring-data-jpa-3.1.5.jar:3.1.5] в org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149) ~[spring-data-jpa-3.1.5.jar:3.1.5] в org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137) ~[spring-data-jpa-3.1.5.jar:3.1.5] в org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136) ~[spring-data-commons-3.1.5.jar:3.1.5] в org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120) ~[spring-data-commons-3.1.5.jar:3.1.5] в org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164) ~[spring-data-commons-3.1.5.jar:3.1.5] в org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143) ~[spring-data-commons-3.1.5.jar:3.1.5] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.13.jar:6.0.13] в org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72) ~[spring-data-commons-3.1.5.jar:3.1.5] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.13.jar:6.0.13] в org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvoke(TransactionInterceptor.java:123) ~[spring-tx-6.0.13.jar:6.0.13] в org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391) ~[spring-tx-6.0.13.jar:6.0.13] в org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.0.13.jar:6.0.13] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[весна-aop-6.0.13.jar:6.0.13] в org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-6.0.13.jar:6.0.13] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.13.jar:6.0.13] в org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulationMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135) ~[spring-data-jpa-3.1.5.jar:3.1.5] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.13.jar:6.0.13] в org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocateInterceptor.java:97) ~[spring-aop-6.0.13.jar:6.0.13] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.13.jar:6.0.13] в org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244) ~[spring-aop-6.0.13.jar:6.0.13] по адресу jdk.proxy2/jdk.proxy2.$Proxy248.findBySomething(неизвестный источник) ~[na:na]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»