java - 在 Spring 中解析 MongoRepository 的变量名称

标签 java spring mongodb mongorepository

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目前正在找楼盘recordidHistory里面类。

你要做的就是改变你的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/

相关文章:

java - Spring 批处理 : Remove stack trace of run time exception from exit description

node.js - Mongoose 覆盖文档而不是 `$set` 字段

java - GWT - 当 java.util.List 更改时更新小部件

java - 如何使用固定宽度的 Swing FlowLayout?

java - 日期未正确插入数据库

spring - 配置 Jasig CAS 以使用 BCrypt

linux - MongoDB : Is it possible to store "Data Directory" on GlusterFS Volume (across Multiple VMs), 以便备用 Mongo Server 可以在需要时使用它?

javascript - 发生重复注册时 Node Express 服务器崩溃

java - Eclipse 似乎不识别 java

java - 二分查找和插入排序