在 Spring 中解析 MongoRepository 的变量名称
Resolve variable name for MongoRepository in Spring
MongoRepository 中带有 _
的变量的正确方法名称是什么。
History.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'?
我已经尝试了以下变量选项,但是 none 这个工作。
List<History> findAllByRecordId(Long recordId);
List<History> findAllByRecord_id(Long recordId);
List<History> findAllByRecord__id(Long recordId);
更改变量声明
private Long record_id;
到
private Long recordId;
并使用这个:
List<History> findByRecordId(Long recordId);
异常说有No property recordid found for type History!
。
发生这种情况是因为您写为 findAllByRecordid
的存储库方法当前正在 History
class.[=24= 中寻找 属性 recordid
]
你要做的就是相应地改变你的History
class;例如,您可以更改
private Long record_id;
至
private Long recordid;
但是,由于我认为 record_id
是一个复合名称变量,您应该使用驼峰式命名规则并将其命名为 recordId
.
遵循驼峰式大小写约定,您还必须将存储库方法更改为 List<History> findByRecordId(Long recordId);
在这种情况下,您还必须使用 @Field
注释对 recordId
进行注释,以便将 recordId
属性 映射到 MongoDBBSON文档。进一步details/information,你可以看看Mapping annotation overview
使用
@Field("record_id")
private Long recordId;
MongoRepository 中带有 _
的变量的正确方法名称是什么。
History.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'?
我已经尝试了以下变量选项,但是 none 这个工作。
List<History> findAllByRecordId(Long recordId);
List<History> findAllByRecord_id(Long recordId);
List<History> findAllByRecord__id(Long recordId);
更改变量声明
private Long record_id;
到
private Long recordId;
并使用这个:
List<History> findByRecordId(Long recordId);
异常说有No property recordid found for type History!
。
发生这种情况是因为您写为 findAllByRecordid
的存储库方法当前正在 History
class.[=24= 中寻找 属性 recordid
]
你要做的就是相应地改变你的History
class;例如,您可以更改
private Long record_id;
至
private Long recordid;
但是,由于我认为 record_id
是一个复合名称变量,您应该使用驼峰式命名规则并将其命名为 recordId
.
遵循驼峰式大小写约定,您还必须将存储库方法更改为 List<History> findByRecordId(Long recordId);
在这种情况下,您还必须使用 @Field
注释对 recordId
进行注释,以便将 recordId
属性 映射到 MongoDBBSON文档。进一步details/information,你可以看看Mapping annotation overview
使用
@Field("record_id")
private Long recordId;