springboot使用neo4j


springboot2.2使用neo4j
第一次更新先放一些代碼進來,下次加注釋
1.引入相應的包
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>

2.配置neo4j

spring.data.neo4j.uri=bolt://localhost:7687
spring.data.neo4j.username=neo4j
spring.data.neo4j.password=admin

@Bean
public org.neo4j.ogm.config.Configuration getConfiguration(){
  org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration.Builder()
    .uri(environment.getProperty("spring.data.neo4j.uri"))
    .connectionPoolSize(100)
    .credentials(environment.getProperty("spring.data.neo4j.username"), environment.getProperty("spring.data.neo4j.password"))

    .withBasePackages("com.distribute.order.repository")

    .build();

  return configuration;
}

@Bean
public SessionFactory sessionFactory(){
  return new SessionFactory(getConfiguration());
}

@Bean("neo4jTransaction")
public Neo4jTransactionManager neo4jTransactionManager(SessionFactory sessionFactory){
  return new Neo4jTransactionManager(sessionFactory);
}

3.配置接口
public interface CommonRepository extends Neo4jRepository{

  @Query(" create(n:Person{name:'bob',born:'1990',location:'sjz'}) ")
  void addNode();

  @Query(" match(n) detach delete n ")
  void deleteAll();

  @Query(" match(n:Person{name:{0}}) return n ")
  List<Map<String,Object>> findPerson(String name);

  @Query(" create(movies:Movie{name:'starWars',released:'1990',title:'star wars'}) ")
  void addNodeParent();
}

4.service層使用

@Autowired
private CommonRepository commonRepository;

@Override
@Transactional(value = "neo4jTransaction")
public Result addNode(Map<String, Object> params) throws Exception{
  try{
    commonRepository.addNode();
    commonRepository.addNodeParent();
  }catch(Exception e){
    e.printStackTrace();
    log.error("新增失敗",e);

    throw new RuntimeException("新增失敗");
  }

  return new Result();
}

5.個人疑問
@Transactional(value = "transactionManager")默認事務管理器不會管理neo4j的事務
但是@Transactional(value = "neo4jTransaction"),使用neo4j的事務管理器,則可以同時管理mysql及neo4j的事務。但是沒有查到什么資料,要是您知道,希望可以教教我


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM