2017-09-17 14 views
0

私はthis tutorialをフォローしています。Field ** in com。**タイプ 'com。**'のBeanが見つかりませんでした。

私はバックエンドのフォルダにmvn spring-boot:runを実行すると、私は次のエラーを取得する:

Field movieRepository in com.movieseat.services.impl.MovieServiceImpl required a bean of type 'com.movieseat.repositories.MovieRepository' that could not be found.

MovieServiceIml.java

package com.movieseat.services.impl; 

// Java imports 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 

// Spring imports 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 

// Project imports 
import com.movieseat.models.Movie; 
import com.movieseat.services.MovieService; 
import com.movieseat.repositories.MovieRepository; 

@Service 
public class MovieServiceImpl implements MovieService { 

    @Autowired private MovieRepository movieRepository; 

    @Override public List<Movie> getAllmovies() { 
     List<Movie> movies = new ArrayList<Movie>(); 
     Iterator<Movie> iterator = movieRepository.findAll().iterator(); 
     while (iterator.hasNext()) { 
      movies.add(iterator.next()); 
     } 

     return movies; 
    } 

} 

MovieRepository.java

package com.movieseat.repositories; 

// Java imports 
import java.io.Serializable; 

// Spring imports 
import org.springframework.data.repository.CrudRepository; 
import org.springframework.stereotype.Repository; 

// Project imports 
import com.movieseat.models.Movie; 

@Repository 
public interface MovieRepository extends CrudRepository<Movie, Serializable> {} 

次のような構造が使用されています:

  • コム
    • movieseat
      • Application.java
      • コントローラ
        • MovieController.java
      • モデル
        • MovieModel.java
      • リポジトリ
        • MovieRepository.java
      • サービス
        • IMPL
          • MovieServiceImpl.java
        • MovieService.java

そして、これは私のApplication.javaです:

package com.movieseat; 

// Spring importss 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.web.support.SpringBootServletInitializer; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 

@SpringBootApplication 
@ComponentScan({"com.movieseat.*"}) 
@EnableJpaRepositories("com.movieseat.repositories.*") 
public class Application extends SpringBootServletInitializer { 
    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

私の考えは@EnableJpaRepositories("com.movieseat.repositories.*")を使用すると、すべてのリポジトリにアクセスできるようになることです。しかし、私は何か間違っている。

答えて

1

はあなたのMovie@Entity注釈を持っていることを確認し

@EnableJpaRepositories("com.movieseat.repositories") 

*(ワイルドカード)なしでそれを試してみてください。

+0

それはトリックでした。私は 'import javax.persistence.Id;'と '@ id'をモデルに追加してそれを動作させる必要もありました。 –

関連する問題