SoFunction
Updated on 2025-03-11

springboot neo4j configuration code

neo4j is a graph database, which requires a graph database to be used in the relationship graph.

W3c tutorial:https:///neo4j/

The Chinese version of the database can display images through image attributes, and the animation effect of the official website is achieved through;

pom import configuration

<dependency>
            <groupId></groupId>
            <artifactId>spring-boot-starter-data-neo4j</artifactId>
        </dependency>
 <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-ogm-http-driver</artifactId>
            <version>3.1.4</version>
        </dependency>

Configure the database:

#neo4j
.=neo4j
.=123
.=http://192.168.100.106:7474
package ;

import org.;
import ;
import ;
import ;
import ..EnableNeo4jRepositories;
import ..Neo4jTransactionManager;
import ;

@Configuration
@EnableNeo4jRepositories(basePackages = ".neo4j")
@EnableTransactionManagement
public class Neo4jConfig {

    @Value("${blotUri}")
    private String uri;

    @Value("${.}")
    private String databaseUrl;

    @Value("${.}")
    private String userName;

    @Value("${.}")
    private String password;

    @Bean
    public SessionFactory sessionFactory() {
        org. configuration = new org.()
                .uri(databaseUrl)
                .credentials(userName, password)
                .build();
        return new SessionFactory(configuration, ".neo4j");
    }

    @Bean
    public Neo4jTransactionManager transactionManager() {
        return new Neo4jTransactionManager(sessionFactory());
    }


}

Using neo4j:

neo4j is basically composed of two parts, nodes and relationships. The relationship is used to indicate the direction and associated attributes of the two nodes:

Node bean:

package .neo4j;

import ;
import ;
import ;
import ;
import org..*;
import ;

import ;

@Data
@NodeEntity
public class FaceNode {

    public FaceNode() {
    }

    public FaceNode(String name) {
         = name;
    }

    @Id
    @GeneratedValue
    private Long id;

    /**
     * objId
     */
    private String objId;


    @JSONField(serialize = false)
    @JsonIgnore
    @Transient
    private String startName;
    @JSONField(serialize = false)
    @JsonIgnore
    @Transient
    private String endName;

    @Transient
    private Integer pathNum;

    @Transient
    private String intimacy;

    @Property(name = "scenes")
    private String scenes;

    @Property(name = "image")
    private String symbol;

    @Transient
    private Integer[] symbolSize = {60,60};

    @JSONField(serialize = false)
    @Transient
    private MultipartFile faceImg;
    @JSONField(serialize = false)
    @Transient
    private String startTime;

    @JSONField(serialize = false)
    @Transient
    private String endTime;



    @Relationship(type = "relation")
    private List<FaceNodePro> faceNodePros = ();

    private List<FaceNode>  children = ();

    public void addEndNode(FaceNode endNode, String title) {
        FaceNodePro pro = new FaceNodePro(title, this, endNode);
        (pro);
    }

    public void addStartNode(FaceNode startNode, String title) {
        FaceNodePro pro = new FaceNodePro(title, startNode, this);
        (pro);
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
         = id;
    }

    public String getObjId() {
        return objId;
    }

    public void setObjId(String objId) {
         = objId;
    }

    public String getSymbol() {
        return symbol;
    }

    public void setSymbol(String symbol) {
         = symbol;
    }

    public List<FaceNodePro> getFaceNodePros() {
        return faceNodePros;
    }

    public void setFaceNodePros(List<FaceNodePro> faceNodePros) {
         = faceNodePros;
    }

    public String getStartName() {
        return startName;
    }

    public void setStartName(String startName) {
         = startName;
    }

    public String getEndName() {
        return endName;
    }

    public void setEndName(String endName) {
         = endName;
    }

    public MultipartFile getFaceImg() {
        return faceImg;
    }

    public void setFaceImg(MultipartFile faceImg) {
         = faceImg;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
         = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
         = endTime;
    }

    public String getScenes() {
        return scenes;
    }

    public void setScenes(String scenes) {
         = scenes;
    }
}

Relationship bean:

package .neo4j;

import ;
import org..*;

@RelationshipEntity(type = "relation")
public class FaceNodePro {

    public FaceNodePro() {
    }

    public FaceNodePro(String intimacy, FaceNode startNode, FaceNode endNode) {
         = intimacy;
         = startNode;
         = endNode;
    }

    @Id
    @GeneratedValue
    private Long nodeProId;

    /**
      * Intimacy
      */
    @Property
    private String intimacy;

    @JsonBackReference
    @StartNode
    private FaceNode startNode;

    @EndNode
    private FaceNode endNode;

    public Long getNodeProId() {
        return nodeProId;
    }

    public void setNodeProId(Long nodeProId) {
         = nodeProId;
    }

    public String getIntimacy() {
        return intimacy;
    }

    public void setIntimacy(String intimacy) {
         = intimacy;
    }

    public FaceNode getStartNode() {
        return startNode;
    }

    public void setStartNode(FaceNode startNode) {
         = startNode;
    }

    public FaceNode getEndNode() {
        return endNode;
    }

    public void setEndNode(FaceNode endNode) {
         = endNode;
    }
}

Repository implementation:

@Repository
public interface FaceNodeRepository extends Neo4jRepository&lt;FaceNode, Long&gt; {

    FaceNode findByObjId(@Param("objId") String objId);

    /**
      * Query the graph of the specified level of node Node
      *
      * @param
      * @return
      */
    @Query(value = "MATCH n=(:FaceNode{objId:{objId}})-[*..6]-&gt;() RETURN n")
    List&lt;FaceNode&gt; findByHierarchical(@Param("objId") String objId);

}

The rest of the use is very simple.

I've collected some statements that I'll use:

Query nodeNodeAll relationships
match(Node{name:'5c26219bd3e2dca5322110bb'})-[:PLAYED_IN]-&gt;(yf)return Node,yf
Query nodeNodeof2Layer relationship diagram
MATCH n=(:Node{name:"5c262177d3e2dca5322110b3"})-[*..1]-() return n
两个陌生人之间of所有最短认识路径
MATCH n = allshortestPaths((News:Friends circle{Name:"Xiao News"})-[*..6]-(Xiao Fei:Friends circle{Name:"Xiao Fei"})) return n
Query nodeNode指向ofAll nodes
MATCH (:Node { name: '5c262137d3e2dca5322110a7' })--&gt;(movie)RETURN movie;
Query tagsNodeAll nodes
match(n)--(m:Node)return n;
Bulk creationNode节点ofFriends circle
MATCH (Node:Node {name:"4j2ap"})FOREACH (name in ["Johan","Rajesh","Anna","Julia","Andrew"] |CREATE (Node)-[:FRIEND]-&gt;(:Person {name:name}))
Query the number of directed relationships between two nodes
match (:FaceNode{name:"gong"})-[r:PLAYED_IN]-&gt;(:FaceNode{name:"eza2e"})return count(r)

refer to:

Reprinted from: /article/sinat_21184471/87092034
Copyright Statement: This article is an original article from the blogger, followCC 4.0 BY-SACopyright agreement, please attach the original source link and this statement to reprint.

Link to this article:/sinat_21184471/article/details/87092034

This is all about this article about springboot neo4j. For more related springboot neo4j content, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!