Spring 数据查询无法正常工作,因为该字段的名称中包含 Or。字段名称是 - approvedOrRejectedBy
Spring data query not working properly, because the field is having Or in the name. Field name is - approvedOrRejectedBy
Spring 数据查询无法正常工作,因为字段中有 Or
。
字段是String approvedOrRejectedBy
。因此,在编写查询时,它与默认的 Or.
混淆了
我写的查询是:
List<Object> findAllByTimeStampBetweenAndCameraSlugInAndApprovedOrRejectedBy(long startTime, long endTime, List<String> cameraSlugs, String id);
由于字段名称中存在 Or
,因此会引发错误。关于如何解决此问题的任何建议或解决方法,除了更新文件名和数据库映射之外。
尝试使用 JPQL 编写自定义查询,例如 @Query 注释。请看
按方法名称查询 将从名称中解释某些关键字:
- Subject Keywords 喜欢这里
findAllBy
- Predicate Keywords 喜欢这里
And
、Or
、Between
以及 属性 个名字
由于您的 field/property 似乎命名为 approvedOrRejectedBy
您可以通过以不同方式命名对象 属性 并使用给定的映射数据库列名称对其进行注释来解决,例如@Column(name "ApprovedOrRejectedBy")
.
@Column(name "approvedOrRejectedBy")
String reviewedBy;
那么你的查询方法可以改写为
List<Object> findAllByTimeStampBetweenAndCameraSlugInAndReviewedBy(long startTime, long endTime, List<String> cameraSlugs, String id);
或者,由于方法名称变得难以阅读,您可以缩短名称并在 @Query
注释上指定 SELECT,如下所示:
@Query("SELECT * FROM entityOrTable x WHERE x.timeStamp BETWEEN ?1 AND ?2 AND x.cameraSlug IN ?3 AND x.approvedOrRejectedBy = ?4")
List<Object> findByIntervalCameraSlugInAndReviewedBy(long startTime, long endTime, List<String> cameraSlugs, String id);
另请参阅:
- Spring-Data-Jpa Repository - Underscore on Entity Column Name
Spring 数据查询无法正常工作,因为字段中有 Or
。
字段是String approvedOrRejectedBy
。因此,在编写查询时,它与默认的 Or.
我写的查询是:
List<Object> findAllByTimeStampBetweenAndCameraSlugInAndApprovedOrRejectedBy(long startTime, long endTime, List<String> cameraSlugs, String id);
由于字段名称中存在 Or
,因此会引发错误。关于如何解决此问题的任何建议或解决方法,除了更新文件名和数据库映射之外。
尝试使用 JPQL 编写自定义查询,例如 @Query 注释。请看
按方法名称查询 将从名称中解释某些关键字:
- Subject Keywords 喜欢这里
findAllBy
- Predicate Keywords 喜欢这里
And
、Or
、Between
以及 属性 个名字
由于您的 field/property 似乎命名为 approvedOrRejectedBy
您可以通过以不同方式命名对象 属性 并使用给定的映射数据库列名称对其进行注释来解决,例如@Column(name "ApprovedOrRejectedBy")
.
@Column(name "approvedOrRejectedBy")
String reviewedBy;
那么你的查询方法可以改写为
List<Object> findAllByTimeStampBetweenAndCameraSlugInAndReviewedBy(long startTime, long endTime, List<String> cameraSlugs, String id);
或者,由于方法名称变得难以阅读,您可以缩短名称并在 @Query
注释上指定 SELECT,如下所示:
@Query("SELECT * FROM entityOrTable x WHERE x.timeStamp BETWEEN ?1 AND ?2 AND x.cameraSlug IN ?3 AND x.approvedOrRejectedBy = ?4")
List<Object> findByIntervalCameraSlugInAndReviewedBy(long startTime, long endTime, List<String> cameraSlugs, String id);
另请参阅:
- Spring-Data-Jpa Repository - Underscore on Entity Column Name