当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring按null查询实体属性?

江丰羽
2023-03-14
public interface MyEntityRepository<MyEntity> extends CrudRepository<MyEntity, Long> {}

@Entity
public class MyEntity() {
    private Long id;
    private Date reservation;
}

findByReservationIsNull(new PageRequest(0, 2, new Sort(Direction.DESC, "reservation"))));
java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:854) ~[?:1.8.0_31]
at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042) ~[?:1.8.0_31]
at org.springframework.data.jpa.repository.query.CriteriaQueryParameterBinder.bind(CriteriaQueryParameterBinder.java:63) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.ParameterBinder.bind(ParameterBinder.java:111) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.ParameterBinder.bindAndPrepare(ParameterBinder.java:172) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.ParameterBinder.bindAndPrepare(ParameterBinder.java:163) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery$QueryPreparer.invokeBinding(PartTreeJpaQuery.java:207) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery$QueryPreparer.createQuery(PartTreeJpaQuery.java:134) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.doCreateQuery(PartTreeJpaQuery.java:74) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:164) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:110) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:74) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:97) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:88) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:395) ~[spring-data-commons-1.9.2.RELEASE.jar:?]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:373) ~[spring-data-commons-1.9.2.RELEASE.jar:?]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$DefaultMethodInvokingMethodInterceptor.invoke(RepositoryFactorySupport.java:486) ~[spring-data-commons-1.9.2.RELEASE.jar:?]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) ~[spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136) ~[spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodIntercceptor.invoke(CrudMethodMetadataPostProcessor.java:122) ~[spring-data-jpa-1.7.2.RELEASE.jar:?]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) ~[spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at com.sun.proxy.$Proxy112.findByReservationIsNull(Unknown Source) ~[?:?]

共有1个答案

秦俊豪
2023-03-14

您需要使用:PagingAndSortingRepository以便使用分页和排序。

看到类似的答案

顺便说一句,引发此异常是因为CrudRepository中的FindByReservationisNull不需要任何参数,因此无法找到匹配的方法。

 类似资料:
  • 我有EntityA和EntityB,它们具有一个从EntityA->EntityB的OneToMany关系。我想将EntityB作为属性包含到EntityA中。 另一种解决方法是在方法中获取并设置该属性,但我的目标是在entity类中找到一个解决方案。有人有主意吗?谢谢

  • 问题内容: 我目前正在开发第一个Loopbackjs项目,并且面临着一个看似简单的问题:假设我有一个模型“ Post”和一个模型“ Tag”。帖子具有且属于许多标签。 现在,我需要列出所有带有特定标签的帖子。我只是想不通如何使用Loopback创建查询来实现此目的。我以为它会像这样工作,但不会: 我将不胜感激任何帮助。 问题答案: 对某些相关属性进行过滤并不像应该那么容易。有一个未完成的拉取请求,

  • null 这似乎意味着我不像使用简单的“From customer”查询那样获取customer实体的实例。如果是这种情况,如何返回客户实体?如果没有,那我做错了什么?

  • 问题内容: 我正在尝试查询DynamoDB表以查找未设置属性的所有项目。包含该字段的表上存在一个称为的全局二级索引。 结果: 表定义: 问题答案: DynamoDB的全局二级索引允许稀疏索引。这意味着,如果您有一个GSI,但未定义该项目的哈希或范围键,则该项目将不会直接包含在GSI中。这在许多用例中很有用,因为它使您可以直接识别包含某些字段的记录。但是,如果您缺少字段,则此方法将行不通。 要获取所

  • 问题内容: 我正在使用Bootstrap 3构建响应式布局,在该布局中我想根据屏幕尺寸调整一些字体大小。我如何使用媒体查询来进行这种逻辑? 问题答案: 如果要保持一致,以下是BS3中使用的选择器: 注意:仅供参考,这可能对调试有用: 引导程序4 这是BS4中使用的选择器。 BS4中没有“最低”设置,因为“超小”是默认设置。 也就是说,您首先要编码XS大小,然后再覆盖这些媒体。 更新2019-02-