SpringData mongodb crudrepository查找枚举值

时间:2018-01-31 11:19:04

标签: spring mongodb enums

Heloo 我需要查询mongodb数据库并查找具有指定枚举值的文档。 这是我的枚举类:

public enum DataType {

value1,value2,value3
}

以下是我在存储库中实现它的方法:

public interface MainDataRepo extends CrudRepository<MainData, Long>{   
public Page<MainData> findTop100ByDataTypeByOrderByDateDesc(Pageable 
pageable, DataType dataType);
}

但是抛出了这个异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'mainDataRepo': Invocation of init method failed; nested exception 
is org.springframework.data.mapping.PropertyReferenceException: No property 
by found for type DataType! Traversed path: MainData.dataType.

我知道问题在哪里, 感谢。

编辑:

This is MainData class:

@Document(collection="MainData")
public class MainData {

@Id
private Integer id;

private String text;

private String url;

private long date;

private String sender;

private String symbol;

private DataType dataType;

//setters and getters
}

我也改变输入参数顺序,并定义如下方法:

findTop100ByDataTypeByOrderByDateDesc(DataType dataType, Pageable pageable);

但仍然是同样的错误。

1 个答案:

答案 0 :(得分:1)

方法名称应为

findTop100ByDataTypeOrderByDateDesc

DataType和Order之间还有一个额外的。所以spring数据认为有一个名为by的字段并试图在你的MainData类中搜索它。因而错误。