2017-02-15 13 views
7

私は春ブーツ+春データJPAでの作業とCrudRepositoryを拡張するクラスを注入しようとすると、この問題に直面している:春ブーツJPA CrudRepository

によって引き起こさ

:org.springframework.beans.factory.BeanCreationException : エラー名でBeanを作成する「topicRepository」:

リポジトリクラス: 一致するコンストラクタ(型あいまいさを避けるために の簡単なパラメータのインデックス/タイプ/名引数を指定するヒント)を解決できませんでした。

public interface TopicRepository extends CrudRepository<Topic, Integer> {} 

サービスクラス:

@Service 
public class TopicService { 

     @Autowired 
     private TopicRepository topicRepository; 
} 

任意の提案ですか?

+0

あなたのインターフェースに '@ Repository'アノテーションがありますか?はいの場合は削除します。 – Patrick

+0

いいえ、インターフェース上に@Repositoryアノテーションがありません。クラスはこの記事のように正確に見えます。ありがとうございました。 –

+0

通常これで十分です。 Topic Serviceやその他のXML設定でデフォルト以外のコンストラクタを使用していますか? – Patrick

答えて

0

ていることを確認してください:

1)TopicRepositoryは@Repositoryで注釈されています。私は同じ問題を抱えていた

<jpa:repositories base-package="mypkg.repositories"></jpa:repositories> 
+1

の両方を行う必要はありません。 – Patrick

+0

Springデータは、CrudRepository、JPARepositoryなどのリポジトリをスキャンします。バネデータの@Repository注釈は不要です。 – gkatzioura

+0

Sprignの仕様https://docs.spring.io/spring-data/jpa/docs/current/reference/html/によると、JavaConfig - @EnableJpaRepositoriesまたはxmlを指定してその設定を追加する必要があります –

8

、と私は春のブートバージョンを切り替えることにより、それを修正:

2)あなたは、スキャンパッケージが設定されています。 Springデータの変更JPAのバージョンは何もしませんでした(これは私がバグを想定していた場所です)。バージョン1.5.1のSpring Bootにバグがあると思います。私はバージョン1.4.3に戻って、エラーはなくなりました。私は後続バージョン/異なるバージョンを試していないので、依存関係とそのバージョンを試してみるとよいかもしれません。

記録のために、あなたのサービスクラスに@Repositoryと注釈を付けることができます。それは何の違いもありません。私は、これらのアプリケーションをサービス/ DAOパターンを使用して同じ方法で設定してきましたが、アノテーションであまりにも厄介なことはありませんでした。うまくいけば、これは春のブート開発の流れが突然エラーをスローする他の人々を助けるかもしれません!

2

どのバージョンのスプリングデータコモンとスプリングデータjpaを使用していますか。私はちょうどspring-data-jpa 1.10.xでspring-data-commons 1.13.xを使ってこれに遭遇しました。 spring-data-jpaを1.11.xにアップグレードすると、問題が解決しました。

0

私はSpringブートを1.5.4にアップデートした後も同じ問題がありました。

また、バージョン1.0.4のspring-data-enversも使用しています。 1.4.1へのアップグレードは問題を解決しました。

私はそれが誰かを助けてくれることを願っています:

0

1.5.2で同じ問題がありました。 1.5.5へのアップグレードは問題を解決しました。