2016-07-29 21 views
1

私は、JPAリポジトリを使用した簡単なバネ・ブート・プロジェクトを使用して、スプリング・セキュリティとLOGイベントを格納するためのUSERおよびAUTHORITIES情報を格納します。プロジェクトは正常に動作しています。今、私はneo4jを含む特別な機能を追加したいと思います。私はspring-data-neo4jをプロジェクトに追加し、neo4jの設定を作成しました。私は取得していたアプリケーションを実行するとバネデータjpa + springデータneo4jの混合。 userservice

@EnableTransactionManagement 
@EnableScheduling 
@Configuration 
@EnableNeo4jRepositories(basePackages = "com.mycompany.analytics.graph.repository") 
public class Neo4jConfig extends Neo4jConfiguration { 

    public static final String URL = System.getenv("NEO4J_URL") != null ? System.getenv("NEO4J_URL") : "http://neo4j:[email protected]:7474"; 

    @Bean 
    public org.neo4j.ogm.config.Configuration getConfiguration() { 
     org.neo4j.ogm.config.Configuration config = new org.neo4j.ogm.config.Configuration(); 
     config 
       .driverConfiguration() 
       .setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver") 
       .setURI(URL); 
     return config; 
    } 

    @Override 
    public SessionFactory getSessionFactory() { 
     return new SessionFactory(getConfiguration(), "com.mycompany.analytics.graph.repository"); 
    } 
} 

は、以前私は、リレーショナルデータベースに格納するユーザー情報UserServiceのイムで

/** 
* Spring Data JPA repository for the User entity. 
*/ 
public interface UserRepository extends JpaRepository<User, Long> { 
    Optional<User> findOneByActivationKey(String activationKey); 
    List<User> findAllByActivatedIsFalseAndCreatedDateBefore(ZonedDateTime dateTime); 

    Optional<User> findOneByResetKey(String resetKey); 

    Optional<User> findOneByEmail(String email); 

    Optional<User> findOneByLogin(String login); 

    Optional<User> findOneById(Long userId); 

    @Override 
    void delete(User t); 
} 

に私のユーザーリポジトリは、リポジトリに

@Service 
@Transactional 
public class UserService { 
.... 

    @Inject 
    private UserRepository userRepository; 
.... 

を注入していたし、ユーザーリポジトリがJPAリポジトリでNeo4jデータベースを使用しようとしているため、エラーが発生しました。

spring-data-neo4jを既存のJPAインフラストラクチャに影響を与えずに統合するオプションはありますか? Spring Data Commonsため

おかげ

+0

StackOverflowに加えて、Neo4jコミュニティはSlack Channelをホストします。参加を強くお勧めします。詳細:https://neo4j.com/blog/public-neo4j-users-slack-group/ –

答えて

3

リファレンスガイドは、同時に、そのようなのNeo4jとJPAの両方として、2つのスプリング・データ・プロジェクトを使用する方法に関する指示を含んでいます。あなたはそれをどうやって見てください。問題が発生した場合はお知らせください。

+0

チップをありがとう! – silvestrelosada

+0

は、ドキュメントとに従って、この追加するに十分である:EnableNeo4jRepositories(basePackages = "com.mycompany.repositories.neo4j")私はそれを試してみました @ @EnableJpaRepositories(basePackages = "com.mycompany.repositories.jpa") を、しかし、 jpaリポジトリはneo4jを使って設定されています – silvestrelosada

+0

これで両方のリポジトリを使用できるようになりました。しかし、jpaリポジトリはトランザクションにいくつかの問題を与えています。また、初期化の例外もあります。 **ロールのコレクションを遅延して初期化できませんでした:com.company.analytics.domain.User.authorities、プロキシを初期化できませんでした - セッション** – silvestrelosada

関連する問題