1

MongoDBでSpringブートデータを読んで学んでいます。Springデータを含むRest API MongoDB - リポジトリメソッドが動作しない

{ 
    "_id" : ObjectId("5910c7fed6df5322243c36cd"), 
    name: "car" 
} 

私がURLを開くと::

http://localhost:8090/items 

を、私はすべての項目の完全なリストを取得し、私は次の形式で私のデータベースには約10個のレコードを持っています。しかし、私はそのように使用する場合などfindByIdcountとしてMongoRepositoryの方法を使用したい:

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で定義されているメソッドを実装する必要がありますか、それとも自動的に実装されますか?私は迷っており、これほど長い間これを理解しようとしています。コントローラーに空のメソッドがありません。

+1

アプリケーションの起動時に見えるリクエストマッピングを確認しましたか?これは、Spring Data RESTによって自動的に作成されるすべてのマッピングを表示します。 –

+1

入力ミスをお許しください。それは "あなたのアプリケーションが起動したときにログに記録される"と言っているはずです –

+0

ありがとうアンディ。 Eclipseにすべてのマッピングを教える機能がありますか?申し訳ありませんが、私はこれについては分かりません。 – Karthik

答えて

2

findByIdメソッドを公開するには、そのメソッドを宣言する必要があります。

Item findById(String id); 
Item findByName(String name); 

このメソッドを実装する必要はありません。 SpringBootは、メソッド名を分析し、@Configuration,@ComponentScanすべてがうまく働い除去した後、適切な実装、私は同じ問題を持っていた

+0

それは動作します。ただし、countメソッドはこのように動作しません。戻り値の型はLongではなくlong型なのか? – Karthik

0

を提供します。

関連する問題