2017-12-28 11 views
0

春データneo4jの初心者で、GraphRepositoryでいくつかのエラー/質問があります。春データneo4jグラフリポジトリが動作しない

import guru.springframework.domain.Product; 
import org.springframework.data.neo4j.repository.GraphRepository; 
import org.springframework.data.neo4j.repository.Neo4jRepository; 

public interface ProductRepository extends GraphRepository<Product> { 

    Product findById(Long id); 

    Product deleteById(Long id); 
} 

しかし、いくつかのドキュメントを読んで、リポジトリがすでに提供し、このような方法:

は、私が最初にこれを持っていました。私はそれらを書く必要はありません。

これはこれは

私のテストクラスである
@Test 
    public void testPersistence() { 

     productRepository.deleteAll(); 
     //given 
     Product product = new Product(); 
     product.setDescription(PRODUCT_DESCRIPTION); 
     product.setImageUrl(IMAGE_URL); 
     product.setPrice(BIG_DECIMAL_100); 

     //when 
     productRepository.save(product); 

     //then 
     Assert.assertNotNull(product.getId()); 

     //Product newProduct = productRepository.findById(product.getId()).orElse(null); 


     Product newProduct = productRepository.findById(182L); 

import org.neo4j.ogm.annotation.GraphId; 
import org.neo4j.ogm.annotation.NodeEntity; 

import java.math.BigDecimal; 


@NodeEntity 
public class Product { 

    @GraphId 
    private Long id; 
    private String description; 
    private BigDecimal price; 
    private String imageUrl; 

    //getters and setters 
} 

私の商品ドメインであるfindByIdは

error

は正常ということですが検出されていませんか?

これは私の pom.xml

+0

あなたはProductRepositoryにメソッドを記述する必要があります。 Springのデータは、メソッド名から実行する必要があるクエリを理解します。あなたはクエリを書く必要はありませんが、 'findById(...)'と書いたようにメソッド宣言を書く必要があります。あなたのテストクラスから認識する必要があります。 – pvpkiran

+0

はい、前にその方法を試しましたが、テストを実行したときにNullExceptionが発生し、そのノードが保存されています(182L)。このチュートリアルでは、これらの商品にはnewProduct = productRepository.findById(product.getId())または.Else(null)という商品があります。しかし、私の場合、orElse()は認識されません。それは例外を避けるのに役立つのでしょうか?ここでファイルを見ることができます(43行目)https://github.com/springframeworkguru/spring-boot-neo4j-example/blob/master/src/test/java/guru/springframework/repositories/ProductRepositoryTest.java – andreahg

答えて

0

春データのNeo4j 5.xのので、あなたがNeo4jRepositoryないGraphRepositoryを拡張する必要があります。

以前のバージョンでは、GraphRepositoryが使用されていました。あなたはspring-boot 2.0.0.M7に依存していますが、これはSDN 5に過渡的に依存します。

GraphRepositoryがプロジェクト設定に別の問題があるよりもIDEによって認識される場合。

関連する問題