MongoRepository 中带有 _
的变量的正确方法名称是什么。
历史.java
@Document(collection = "spring-history")
public class History {
private Long record_id;
//getter - setter
}
HistoryRepository.java
public interface HistoryRepository extends MongoRepository<History, String>{
List<History> findAllByRecordid(Long recordId);
}
我得到以下异常
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property recordid found for type History! Did you mean 'record_id'?
我试过以下变量选项,但都没有用。
List<History> findAllByRecordId(Long recordId);
List<History> findAllByRecord_id(Long recordId);
List<History> findAllByRecord__id(Long recordId);
最佳答案
异常说有No property recordid found for type History!
.
发生这种情况是因为您的存储库方法写为 findAllByRecordid
目前正在找楼盘recordid
在History
里面类。
你要做的就是改变你的History
相应地分类;例如,您可以更改
private Long record_id;
到
private Long recordid;
但是,因为我认为 record_id
是一个组合名称变量,您应该使用驼峰命名法并将其命名为 recordId
.
遵循驼峰式大小写约定,您还必须将存储库方法更改为 List<History> findByRecordId(Long recordId);
在这种情况下,您还必须注释 recordId
与 @Field
注释以映射 recordId
属性为 MongoDB BSON 文档中的实际键。有关更多详细信息/信息,您可以查看 Mapping annotation overview
关于java - 在 Spring 中解析 MongoRepository 的变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47015567/