【发布时间】:2018-06-21 09:33:47
【问题描述】:
当我得到一个在 java 对象中不存在的属性时,我执行此操作时出错。我的记录对象有
@Document
public class Record{
@Field("RecordIdentifier")
String RecordIdentifier;
...
}
我的 MongoRepository 对象有
public interface RecordRepository extends MongoRepository<Record,String> {
@Query("{ 'RecordIdentifier' : ?0 }
public Record findByRecordIdentifier(String RecordIdentifier);
}
在 MongoDB 中我有
{
'RecordIdentifier' : 'D'
}
但是当我调用查询方法时
@Autowired
RecordRepository repository
...
repository.findAll();
repository.findByRecordIdentifier("D");
repository.findAll() 返回正常并正确映射所有内容,但 findByRecordIdentifier() 返回错误,指出它无法在 Record 对象中找到属性“recordIdentifier”。如果我在 Record 对象中将字段的名称从“RecordIdentifier”更改为“recordIdentifier”,它可以正常工作,但为什么我不能将该字段称为“RecordIdentifier”
真正奇怪的是,如果我将 Mongo 文档更改为
{
'Record_Identifier' : 'D'
}
即使查询不应再返回任何内容,我仍然会收到相同的错误,因为它现在指向一个不存在的字段。有人可以帮我吗?如果需要,我可以提供更多详细信息。
【问题讨论】:
-
请为@Query 加上双引号和双引号,你忘了最后一个
标签: spring mongodb spring-boot spring-data spring-data-mongodb