spring - 在存储库中使用 Order By 时 Spring Boot 问题 IllegalArgumentException
问题描述
我有一个烦人的问题,我似乎无法找到解决方案。
我目前正在实施一种仅读取按日期排序的前 500 个条目的方法。如果我不输入 Order By,Spring Boot 会提供前 500 名,这很好,但是一旦我包含 Order By 选项,我就会收到此错误:
Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List com.sma.db.repositories.LogRepository.findTop500ByOrderBylogsLogTimeDesc()! No property orderBylogsLogTimeDesc found for type LogEntity!
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:96) ~[spring-data-jpa-2.3.5.RELEASE.jar:2.3.5.RELEASE]
看起来,Spring boot 包含 Order by 和并查找名为 orderbylogsLogTimeDesc 的属性。我也不明白的是,为什么订单是小写的。
有谁知道这个的解决方案?这真的很烦人,我似乎找不到解决方案:(
存储库:@Repository
public interface LogRepository extends JpaRepository<LogEntity, Long>{
// List<FeedEntity> deleteByfeedTimestamp(Date feed_timestamp);
List<LogEntity>findTop500ByOrderBylogsLogTimeDesc();
}
实体:
@Column(name = "logs_logtime")
private Date logsLogTime;
public Date getLogsLogTime() {
return logsLogTime;
}
public void setLogsLogTime(Date logsLogTime) {
this.logsLogTime = logsLogTime;
}
服务:
@Service
public class LogService {
@Autowired
private LogRepository repo;
public List<LogEntity> getLogs() {
return repo.findTop500ByOrderBylogsLogTimeDesc();
}
我最终找到了解决方案:我不得不写L ogsLogTime 而不是 logsLogTime... 。现在可以使用了:)谢谢!
解决方案
也许您必须两次指定该字段,您是否尝试过:
List<LogEntity>findTop500ByLogsLogTimeOrderByLogsLogTimeDesc();
推荐阅读
- linux - 删除 .git 文件夹后如何“只读”-恢复本地 GIT 存储库和文件引用?
- r - 从执行环境中获取嵌套函数的参数
- android - 新的动态功能模块和热插拔
- javascript - 将对象的内容推送到数组中
- python - ValueError:检查时出错:预期 conv2d_1_input 的形状为 (28, 28, 1) 但得到的数组的形状为 (58000, 28, 28)
- jenkins-pipeline - 在 groovy 中创建自定义步骤
- reactjs - 使用 FirebaseUI + React Router 成功登录时重定向
- gurobi - 错误:求解器日志:无法识别的标志或缺少参数:-AMPL
- c - 为什么当我们尝试在 C 编程中将 malloc 用于多个字符串时, malloc 有效,但 calloc 无效?
- html - 在角度 4 中切换三个 div