2
彈簧數據的MongoDB 1.1.2發佈(Spring的數據共同核心1.4.1.Released)彈簧數據@Query註釋和接口
我有一些麻煩,使用@用接口查詢註釋。舉例來說,如果我有定義了以下接口:
public interface Person {
String getName();
Integer getAge();
}
和下面的信息庫中定義:
public interface PersonRepository extends MongoRepository<Person, String> {
@Query(value="{ 'name': ?0}")
List<Person> findPeople(String name);
}
試圖查詢時,我得到以下異常:
java.lang.IllegalArgumentException: No property name found on com.abc.People!
at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentPropertyPath(AbstractMappingContext.java:225)
at org.springframework.data.mongodb.core.convert.QueryMapper.getPath(QueryMapper.java:202)
at org.springframework.data.mongodb.core.convert.QueryMapper.getTargetProperty(QueryMapper.java:190)
at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:86)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1336)
at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1322)
at org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:495)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery$Execution.readCollection(AbstractMongoQuery.java:123)
此異常如果我的@Query更新爲:
public interface PersonRepository extends MongoRepository<Person, String> {
@Query(value="{ 'abcd': ?0}")
List<Person> findPeople(String name);
}
這也不會發生,如果我從接口中刪除getName()函數。
有沒有人遇到過這個問題,並可以告訴我我做錯了什麼,或者如果這是一個已知的問題?我將在Spring數據項目中打開一個JIRA。