3

昨日、Neo4j OGM を知り、すぐに新しいプロジェクトを作成して、その動作をテストしました。私が遭遇した問題の 1 つは、Relationhip プロパティを設定することです。これは私のプロジェクトにとって非常に重要です。次に例を示します。

部屋ノード:

@NodeEntity
public class Room {

@GraphId
Long id;

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

@Relationship(type="CONNECTS")
List<Room> rooms;

public List<Room> getRooms() {
    if(rooms == null)
        rooms = new ArrayList<Room>();

    return rooms;
}

public void setRooms(List<Room> rooms) {
    this.rooms = rooms;
}

public Room(String name){
    this.name = name;
}

public long getId() {
    return id;
}

public void setId(long id) {
    this.id = id;
}


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public Room(){
}

public void connectsTo(Room room){
    this.getRooms().add(room);
}
}

接続ノード (関係):

@RelationshipEntity(type="CONNECTS")
public class Connects {

@GraphId
Long id;

@StartNode
Room startMapNode;

@EndNode
Room endMapNode;

@Property(name="length")
int length;

public Connects(Room startMapNode, Room endMapNode){
    this.startMapNode = startMapNode;
    this.endMapNode = endMapNode;
}

public long getId() {
    return id;
}

public void setId(long id) {
    this.id = id;
}

public Room getStartMapNode() {
    return startMapNode;
}

public void setStartMapNode(Room startMapNode) {
    this.startMapNode = startMapNode;
}

public Room getEndMapNode() {
    return endMapNode;
}

public void setEndMapNode(Room endMapNode) {
    this.endMapNode = endMapNode;
}

public int getLength() {
    return length;
}

public void setLength(int length) {
    this.length = length;
}

public Connects(){

}

}

主な方法:

public static void main(String[] args) {
    SessionFactory sessionFactory = new SessionFactory("at.htl.in110010.domain");
    Session session  = sessionFactory.openSession("http://localhost:7474");

    session.purgeDatabase();

    Room roomOne = new Room("TEST_ROOM_ONE");
    Room roomTwo = new Room("TEST_ROOM_TWO");

    roomOne.connectsTo(roomTwo);
    roomTwo.connectsTo(roomOne);

    Connects connectRelation = new Connects(roomOne,roomTwo);
    connectRelation.setLength(2);

    session.save(connectRelation);

}

ご覧のとおり、メイン メソッドで長さを設定しましたが、 http://localhost:7474でデータベースを確認すると、ノード間の関係が表示されますが、プロパティがないと表示されます。

コンソール出力は次のとおりです。 http://pastebin.com/CByfmVcR

プロパティの設定に関するヘルプは非常に高く評価されます。それとも、オブジェクトを neo4J データベースにマッピングする別の/より簡単な方法はありますか?

ありがとう

4

1 に答える 1