Couchbase Enterprise Edition 5.0.0ビルド2873とSpring Data Couchbase 2.1.2を使用すると、質問の最後にエラーが表示されます。短編小説だけが必要な場合は、先に進んでください。SpringデータCouchbaseの例でリポジトリインスタンスが解決されない
あなたはもう少し説明が必要な場合は、ここでそれが来る:
はCrudRepository方法は私には罰金であることを想像してみてください。つまり、私はこれ以上メソッドを追加する必要はありません。
リポジトリの外観はどうですか?私はこのような空のリポジトリを宣言しますか?
@Repository
public interface PersonRepository extends CrudRepository<Person, String> {
// Empty
}
また、CrudRepositoyをベースリポジトリとして直接使用しますか?あなたがTypeとIDをCrudRepositoryに渡す必要があるので、私はそうは思わない。
しかし、質問はそれではありません。ここに質問が来る:
SpringはPersonRepositoryをどのようにインスタンス化するのか、そのベースリポジトリの実装がないことを考慮して、どのように知っていますか? PersonServiceとPersonServiceImplインタフェース/実装を見てください。
インタフェース:
@Service
public interface PersonService {
Person findOne (String id);
List<Person> findAll();
//...
}
実装:
public class PersonServiceImpl implements PersonService {
// This is the variable for the repository
@Autowired
private PersonRepository personRepository;
public Person findOne(String id){
return personRepository(id);
}
public List<Person> findAll(){
List<Hero> personList = new ArrayList<>();
Iterator<Person> it = personRepository.iterator();
while (it.hasNext()){
personList.add(it.next());
}
return personList;
}
//...
}
それはCrudRepositoryから延びる空PersonRepositoryを宣言すると、実際には十分ですか? CrudRepositoryの各メソッドについて何も実装する必要はありませんか?春はpersonRepository変数を注入しようとしたとき、私はこのエラーを取得していますので、少なくともいくつかのコンストラクタについて、春を告げるために何か...
この疑問はすべて、次のとおりです。
Error creating bean with name 'personRepository': Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities).
どうやら、いくつかを持っているために求めています実装のコンストラクタを少なくとも定義するクラスです。エラーで言及されたタイプのあいまいさを避けるためにSpringにどのように伝えるべきですか?
@EntityScanはすべてのクラスをチェックしていますか? – nabeel
この世で私は何も確信していません... あなたは何を尋ねますか?あなたは私が何かを注釈するために行方不明だと思いますか? 実際に私の以前のエラーは、サービスにレポクラスを注入しないことです。しかし今、私はエンジンにそれを考慮に入れました、そして、私のエラーは今それをインスタンス化する時です。 まだ欠けているものがあると思うならば、それだけを言ってください:)。 ありがとうございます! – ElPiter
申し訳ありません前のコメントは関連しないかもしれません、この例をチェックすると役立つかもしれませんhttp://www.javainterviewpoint.com/spring-boot-crudrepository-example/ – nabeel