我是Spring数据neo4j中的新手,我对GraphRepository有一些错误/问题。
我第一次有这个:
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);
}
但是阅读一些文档,存储库已经提供了这样的方法。我不需要写它们。
这是我的产品域名
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
}
这是我的测试类
@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);
未检测到findById
这是正常的吗?
这是我的 pom.xml
答案 0 :(得分:1)
从Spring Data Neo4j 5.x开始,你应该扩展Neo4jRepository
而不是GraphRepository
。
旧版本中曾出现GraphRepository
。你依赖spring-boot 2.0.0.M7
,它过渡依赖于SDN 5。
如果您的IDE识别出GraphRepository
,那么项目设置中会出现另一个问题。