在存储库中使用Order By时,Spring boot Issue 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的属性。我也不明白的是,为什么订单是用小写写的。

有人知道解决这个问题的办法吗?这真的很烦人,我似乎找不到解决方案:(

存储库:@存储库

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();
} 

我最终找到了解决方案:我不得不写LogsLogTime而不是logsLogTime。现在有效了:(谢谢!

也许您必须指定两次字段,您尝试过吗:

List<LogEntity>findTop500ByLogsLogTimeOrderByLogsLogTimeDesc();

你们给了我一个主意。我真的找到问题了!当我键入LogsLogTime时,它的工作方式如下:

findTop500按订单排序LogsLogTimeDesc

最新更新