0
私はSpring Boot Data Neo4jを使い、映画チュートリアルを終了しようとしています。私はこれを持ってERRORしかし、本当にどのようにデバッグするか分からない。エラーの概要:(1)Beanの作成中にエラーが発生しました。(2)フィールドをオートワイヤードできませんでした。どんな助けでも、ありがとう。Spring Boot DataとNeo4jを統合できません
マイファイルの構造を次のように
SpringBootApplication.java
package com.test.springdataneothree;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import com.test.services.MovieService;
@EnableAutoConfiguration
@SpringBootApplication
public class SpringdataneothreeApplication implements CommandLineRunner {
\t
\t @Autowired
\t MovieService movieService;
\t public static void main(String[] args) {
\t \t SpringApplication.run(SpringdataneothreeApplication.class, args);
\t }
\t
\t @Override
\t public void run(String... arg0) throws Exception {
\t \t System.out.println("Main Spring Boot Class");
\t \t movieService.countMovie();
\t }
}
Movie.java
package com.test.movie;
import org.neo4j.ogm.annotation.GraphId;
import org.neo4j.ogm.annotation.NodeEntity;
@NodeEntity(label ="Movie")
public class Movie {
\t @GraphId
private Long id;
\t
\t String title;
int released;
String tagline;
public Movie() { }
\t public Long getId() {
\t \t return id;
\t }
\t public void setId(Long id) {
\t \t this.id = id;
\t }
\t public String getTitle() {
\t \t return title;
\t }
\t public void setTitle(String title) {
\t \t this.title = title;
\t }
\t public int getReleased() {
\t \t return released;
\t }
\t public void setReleased(int released) {
\t \t this.released = released;
\t }
\t public String getTagline() {
\t \t return tagline;
\t }
\t public void setTagline(String tagline) {
\t \t this.tagline = tagline;
\t }
}
MovieService.java
package com.test.services;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.test.repositories.MovieRepository;
@Service("MovieService")
public class MovieService { \t
\t
\t @Autowired
\t MovieRepository movieRepository;
\t public void countMovie() {
\t \t movieRepository.count();
\t \t
\t }
}
MovieRepository.java
package com.test.repositories;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.GraphRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.test.movie.Movie;
@Repository
public interface MovieRepository extends GraphRepository<Movie> {
\t
\t Movie findById(long id);
\t
\t Movie findByTitle(@Param("title") String title);
\t @Query("MATCH (m:Movie) WHERE m.title =~ ('(?i).*'+{title}+'.*') RETURN m")
Collection<Movie> findByTitleContaining(@Param("title") String title);
@Query("MATCH (m:Movie)<-[:ACTED_IN]-(a:Person) RETURN m.title as movie, collect(a.name) as cast LIMIT {limit}")
List<Map<String,Object>> graph(@Param("limit") int limit);
}
MyNeo4jConfiguration.java
package com.test.configuration;
import org.neo4j.ogm.session.SessionFactory;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.neo4j.config.Neo4jConfiguration;
import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@EnableScheduling
@ComponentScan(basePackages = {"com.test"})
@Configuration
@EnableNeo4jRepositories(basePackages = "com.test.repositories")
public class MyNeo4jConfiguration extends Neo4jConfiguration {
\t @Override
\t public SessionFactory getSessionFactory() {
\t \t return new SessionFactory("com.test.movie");
\t }
}
https://github.com/neo4j-examples/sdn4-universityように、自動配線フィールド上@Qualifierアノテーションを使用することであるSDNのための新しいスプリングブートスターターを用いた例であります – Luanne