You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Data MongoDB CrudRepository枚举查询报错求助

问题原因与解决方案

你的问题出在Repository方法命名的语法错误上——方法名里多了一个多余的By,导致Spring Data无法正确解析属性路径。

错误根源

你定义的方法名是:

findTop100ByDataTypeByOrderByDateDesc

Spring Data的方法命名规则中,By是用来分隔查询条件和排序规则的关键字,这里连续出现两个By,会让框架把ByDataTypeBy当成一个要查询的属性名,而你的MainData实体里根本没有这个属性,自然抛出PropertyReferenceException。

正确的方法命名

只需要去掉中间多余的那个By,正确的方法签名应该是:

public Page<MainData> findTop100ByDataTypeOrderByDateDesc(DataType dataType, Pageable pageable);

额外说明

关于参数顺序:Spring Data其实支持参数顺序不匹配的情况(只要参数类型能对应上),但按照规范,建议把Pageable参数放在方法的最后一位,这样代码可读性更好,也符合Spring Data的最佳实践。

另外,确认你的DataType枚举在MongoDB中是正确映射的——默认情况下Spring Data MongoDB会把枚举值存储为字符串(比如value1),只要你的查询参数和存储的枚举值一致,就能正常匹配。

内容的提问来源于stack exchange,提问作者Narges

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:36:28