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は
は正常ということですが検出されていませんか?
これは私の pom.xml
あなたはProductRepositoryにメソッドを記述する必要があります。 Springのデータは、メソッド名から実行する必要があるクエリを理解します。あなたはクエリを書く必要はありませんが、 'findById(...)'と書いたようにメソッド宣言を書く必要があります。あなたのテストクラスから認識する必要があります。 – pvpkiran
はい、前にその方法を試しましたが、テストを実行したときに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