zoukankan      html  css  js  c++  java
  • spring boot + neo4j restful

    整整折腾了三天,终于把spring boot + neo4j的路走通了。

    这里介绍3个部分,pom,entity,repository

    1)pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.company.project</groupId>
        <artifactId>knowledge</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>Maven Webapp</name>    
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.3.0.RELEASE</version>
        </parent>
    
        <properties>
            <java.version>1.7</java.version>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-rest</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-neo4j</artifactId>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.1.41</version>
            </dependency>
                    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration> 
                           <mainClass>com.bonc.knowledge.Startup</mainClass>
                      </configuration>                
                </plugin>
            </plugins>
        </build>
    
    </project>

    2)entity

    import java.util.HashSet;
    import java.util.Set;
    
    import org.neo4j.graphdb.Direction;
    import org.springframework.data.neo4j.annotation.Fetch;
    import org.springframework.data.neo4j.annotation.GraphId;
    import org.springframework.data.neo4j.annotation.Indexed;
    import org.springframework.data.neo4j.annotation.NodeEntity;
    import org.springframework.data.neo4j.annotation.RelatedTo;
    import org.springframework.data.neo4j.support.index.IndexType;
    
    @NodeEntity
    public class WordEntity {
        @GraphId Long id;    
    
    //    @Indexed(unique = true,indexType = IndexType.FULLTEXT, indexName = "wordName")
        private String name;
        
        private String domain;
        
        private String dict;
        
        private String pos;
        
        @RelatedTo(type = "labeled") 
        Set<LabelEntity> labels = new HashSet<LabelEntity>();
        
        public WordEntity(){
            
        }
        
        public WordEntity(String name){        
            this.name = name;        
        }   
    
        public Long getId() {
            return id;
        }
        
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPos() {
            return pos;
        }
    
        public void setPos(String pos) {
            this.pos = pos;
        }
    
        public Set<LabelEntity> getLabels() {
            return labels;
        }
    
        public void setLabels(Set<LabelEntity> labels) {
            this.labels = labels;
        }
    
        public String getDict() {
            return dict;
        }
    
        public void setDict(String dict) {
            this.dict = dict;
        }
    
        public String getDomain() {
            return domain;
        }
    
        public void setDomain(String domain) {
            this.domain = domain;
        }
    
        @Override
        public String toString() {
            return "WordEntity [id=" + id + ", name=" + name + "]";
        }    
        
    }

    3)repository

    import java.util.List;
    
    //import org.springframework.data.neo4j.annotation.Query;
    //import org.springframework.data.neo4j.repository.GraphRepository;
    //import org.springframework.data.repository.CrudRepository;
    import org.springframework.data.repository.PagingAndSortingRepository;
    import org.springframework.data.repository.query.Param;
    import org.springframework.data.rest.core.annotation.RepositoryRestResource;
    //import org.springframework.stereotype.Repository;
    import org.springframework.stereotype.Repository;
    
    import com.bonc.knowledge.model.WordEntity;
    
    
    @RepositoryRestResource(collectionResourceRel = "word", path = "word")
    @Repository
    public interface WordRepository extends PagingAndSortingRepository<WordEntity, Long> {
    
        List<WordEntity> findByName(@Param("name") String name);    
    
    }
  • 相关阅读:
    福大软工1816 · 第一次作业
    Python学习
    实验12——指针的基础应用2
    实验11——指针的基础应用
    实验十——一维数组的定义及引用
    实验九——基本数据类型存储及应用总结
    实验八——函数定义及调用总结
    实验七——函数定义及调用总结
    实验六——循环结构程序练习总结
    实验五——循环结构学习总结
  • 原文地址:https://www.cnblogs.com/gui0901/p/5447066.html
Copyright © 2011-2022 走看看