【发布时间】:2020-04-19 07:36:35
【问题描述】:
我收到以下错误:
在 com.aks.springStorage.SpringStorageApplication.main(SpringStorageApplication.java:22) [classes/:na]
原因:org.springframework.data.mongodb.UncategorizedMongoDbException:查询失败,错误代码为 2,错误消息“字段 'locale' is invalid in: { locale: "company" }' on server localhost:27017;嵌套异常是 com.mongodb.MongoQueryException:查询失败,错误代码 2 和错误消息“字段 'locale' 在服务器 localhost:27017 上的 { locale: "company" }' 无效
奇怪的是我没有在公司集合中使用任何变量,如“语言环境”。我能够插入并获得计数,但没有一个 findAll* 是 工作,得到同样的错误。
public interface CompanyRepository extends MongoRepository<Company, String> {
List<Company> findByName(String name);
@Query("{'contact.address': ?0}")
List<Company> findByAddress(String address);
}
@Document(collation = "company")
public class Company {
private int id;
private String name;
private List<Product> products;
private Contact contact;
public Company(int id, String name, List<Product> products, Contact contact) {
this.id = id;
this.name = name;
this.products = products;
this.contact = contact;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Product> getProducts() {
return products;
}
public void setProducts(List<Product> products) {
this.products = products;
}
public Contact getContact() {
return contact;
}
public void setContact(Contact contact) {
this.contact = contact;
}
}
// Client code:
//this is working fine
int count = (int) companyRepo.count();
// Failing Here
companies = companyRepo.findByName("yy");
【问题讨论】:
-
collation="company" 好像是错字
-
@MadhavKumarJha 谢谢!这是一个拼写错误,我改为收藏。它奏效了。
-
难以捉摸的“这个问题是一个错字,但应该留下,因为它是一个非常容易自动完成的错字”问题!
标签: mongodb spring-boot