使用 Spring 数据 MongoDB 休息 API - 存储库方法无效
Rest API with Spring Data MongoDB - Repository method not working
我正在阅读和学习 Spring 使用 MongoDB 的引导数据。我的数据库中有大约 10 条记录,格式如下:
{
"_id" : ObjectId("5910c7fed6df5322243c36cd"),
name: "car"
}
当我打开 url:
http://localhost:8090/items
我得到了所有项目的详尽清单。但是,我想使用MongoRepository
的方法,例如findById
、count
等。当我这样使用它们时:
http://localhost:8090/items/count
http://localhost:8090/items/findById/5910c7fed6df5322243c36cd
http://localhost:8090/items/findById?id=5910c7fed6df5322243c36cd
我得到一个 404。
我的设置是这样的:
@SpringBootApplication
public class Application {
public static void main(String[] args) throws IOException {
SpringApplication.run(Application.class, args);
}
}
@Document
public class Item implements Serializable {
private static final long serialVersionUID = -4343106526681673638L;
@Id
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RepositoryRestResource(collectionResourceRel = "item", path = "items")
public interface ItemRepository<T, ID extends Serializable> extends MongoRepository<Item, String>, ItemRepositoryCustom {
}
我做错了什么?我是否需要实施 MongoRepository
定义的方法,或者它们会自动实施?我迷路了,长期以来一直在努力解决这个问题。我的控制器中没有任何方法,它是空的。
您必须声明 findById 方法才能公开它。
Item findById(String id);
Item findByName(String name);
请注意,您不需要实施这些方法。 SpringBoot 将分析方法名并提供正确的实现
我有同样的问题,
删除 @Configuration,@ComponentScan
后一切正常。
我正在阅读和学习 Spring 使用 MongoDB 的引导数据。我的数据库中有大约 10 条记录,格式如下:
{
"_id" : ObjectId("5910c7fed6df5322243c36cd"),
name: "car"
}
当我打开 url:
http://localhost:8090/items
我得到了所有项目的详尽清单。但是,我想使用MongoRepository
的方法,例如findById
、count
等。当我这样使用它们时:
http://localhost:8090/items/count
http://localhost:8090/items/findById/5910c7fed6df5322243c36cd
http://localhost:8090/items/findById?id=5910c7fed6df5322243c36cd
我得到一个 404。
我的设置是这样的:
@SpringBootApplication
public class Application {
public static void main(String[] args) throws IOException {
SpringApplication.run(Application.class, args);
}
}
@Document
public class Item implements Serializable {
private static final long serialVersionUID = -4343106526681673638L;
@Id
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RepositoryRestResource(collectionResourceRel = "item", path = "items")
public interface ItemRepository<T, ID extends Serializable> extends MongoRepository<Item, String>, ItemRepositoryCustom {
}
我做错了什么?我是否需要实施 MongoRepository
定义的方法,或者它们会自动实施?我迷路了,长期以来一直在努力解决这个问题。我的控制器中没有任何方法,它是空的。
您必须声明 findById 方法才能公开它。
Item findById(String id);
Item findByName(String name);
请注意,您不需要实施这些方法。 SpringBoot 将分析方法名并提供正确的实现
我有同样的问题,
删除 @Configuration,@ComponentScan
后一切正常。