簡體   English   中英

Spring 數據 JPA:按示例查找全部並分頁返回 DTO(投影)

[英]Spring Data JPA: Find all by example and page and return DTO (Projection)

我正在嘗試將我的實體的所有數據查找為 EntityDTO。 我知道如何將所有數據查找為 DTO,但我想使用示例 object 放置一些過濾器並獲取頁面作為結果。

我在存儲庫中創建了一個方法:

Page<T> findBy(Example e, Pageable p, Class<T> type);

但是調用此方法會導致錯誤

IllegalArgumentException:至少提供了 1 個參數,但查詢中僅存在 0 個參數。

這是完整的堆棧跟蹤:

org.springframework.dao.InvalidDataAccessApiUsageException: At least 1 parameter(s) provided but only 0 parameter(s) present in query.; nested exception is java.lang.IllegalArgumentException: At least 1 parameter(s) provided but only 0 parameter(s) present in query.
org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:374)
org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:257)
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:149)\r\n\tat org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
com.sun.proxy.$Proxy132.findBy(Unknown Source)

在 Spring 存儲庫接口中,查詢是從方法名稱創建的。

請試試這個:

Page<T> findByExample(Example e, Pageable p, Class<T> type);

如果它不起作用,您可以在這里找到解決方案:

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM