在SDN中定义自引用节点时,关系不返回(Spring Data Neo4J)

时间:2018-11-09 16:00:08

标签: neo4j spring-data-neo4

我们使用6个月的历史网络流量数据生成48小时的预测数据。将最终的投影数据加载到Neo4J中,以支持前端Web应用程序,用户可以在其中搜索服务器,并查看其与组织内其他服务器的未来通信/数据传输。我们定义了一个主机节点,其关系为1至48小时(1H,2H,3H .... 48H)。以下常规密码查询可以正常工作,并返回带有关联信息的数据。

import UIKit

class ViewController: UIViewController {

    //MARK: Outlets
    @IBOutlet weak var imageOne: UIImageView!
    @IBOutlet weak var imageTwo: UIImageView!

    @IBOutlet weak var myText: UILabel!

    let imagesArray = ["banaan", "auto", "kip", "boom" ]

    var questionArray: [String] = []

    var touchArray: [CGPoint] = []

    var itemOne: Int!
    var itemTwo: Int!


    override func viewDidLoad() {
        super.viewDidLoad()
        setupQuestions()
        setupImages()
    }

    //MARK: Randomizing The Lable Question
    fileprivate func setupQuestions() {
        let firstRandomizer = arc4random_uniform(UInt32(imagesArray.count))
        let secondRandomizer = arc4random_uniform(UInt32(imagesArray.count))
        itemOne = Int(firstRandomizer)
        itemTwo = Int(secondRandomizer)

        if itemOne == itemTwo && itemTwo != 0 {
            itemTwo -= 1
        } else if itemOne == itemTwo && itemTwo == 0 {
            itemTwo += 1
        }


        myText.text = """
        selecteer de \(imagesArray[itemOne].capitalized)
        voor dat je de \(imagesArray[itemTwo].capitalized) selecteert
        """
    }

    //Mark: setup images and randomizeing
    fileprivate func setupImages() {
        imageOne.image = UIImage(named: imagesArray[itemOne])
        imageTwo.image = UIImage(named: imagesArray[itemTwo])
    }


    //MARK: Button Randomizer
    @IBAction func nextBtnWasPressed(_ sender: Any) {
        setupQuestions()
        setupImages()
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        //Get image stringvalue to compare it with the question array
    }

}

但是,SDN(Spring Data Neo4j)设置未返回关联信息。节点实体定义如下。

MATCH p=(parent:HOST)-[r]->(child:HOST)
WHERE parent.HOST_NAME = " "
RETURN p, type(r)

存储库定义为

@NodeEntity
public class Host {
  @GraphId
  private Long id;
  private String Host_Name;

  @Relationship(type="")
  private List<Host> hosts;

  public List<Host> getHosts() {
    return hosts;
  }

  public Long getId() {
    return id;
  }

  public String getName() {
    return Host_Name;
  }
}

每小时关系信息(类型(r))没有从spring数据neo4j存储库返回。

节点和关系定义正确吗?我在这里想念什么吗?

任何帮助将不胜感激...

1 个答案:

答案 0 :(得分:0)

您使用的那些空字符串确实很奇怪。我认为空关系类型不起作用。

默认情况下,方向为OUTGOING,如果要查看两者,则必须在注释中指定direction=BOTH

在您的存储库示例中,您需要使用投影或@QueryResult来查看type(r) AS type列。