2015-06-29 2 views
0

Я новичок в Neo4J. Я создал проект, в котором используется spring-data-neo4j (версия 4.0.0.BUILD-SNAPSHOT), spring-boot (версия 1.2.3.RELEASE) и удалось создать узловые сущности, добавить свойства к узлам и добавить отношения. Он работает нормально. Теперь я хочу создать свойства для отношений. Я использовал sdn4 университет в качестве ссылки, вот ссылка https://github.com/neo4j-examples/sdn4-university.SDN 4 не создает отношения со свойствами

Я хочу создать свойство «challengeedBy» для отношений PLAY_MATCH (начальный узел - это совпадение и конечный узел - это Player). Вы можете посмотреть ниже класса.

@RelationshipEntity(type = "PLAY_MATCH") 
public class PlayMatch extends Entity { 
//Entity is a class with the id property for the node/relationship 
@Property 
private String challengedBy; 

@StartNode 
private Match match; 

@EndNode 
private Player player1; 

} 

Я создал контроллер в проекте/api/playmatch, чтобы создать только отношения между матчем и игроком. Поэтому, когда я передаю значения для существующего совпадающего узла и узла игрока, отношения вообще не создаются.

Любая помощь будет оценена ..

код PlayMatch является

@RelationshipEntity(type = "PLAY_MATCH") 
public class PlayMatch extends Entity{ 

@Property 
private String challengedBy; 

@StartNode 
private Match match; 

@EndNode 
private Player player1; 

public PlayMatch() { 

} 
public PlayMatch(String challengedBy, Match match, 
     Player player1) { 
    super(); 
    this.challengedBy = challengedBy; 
    this.match = match; 
    this.player1 = player1; 
} 

// after this i have getters & setters and toString method for above fields. 
} 

код Матч

@NodeEntity(label = "Match") 
public class Match extends Entity { 

private String createdBy; 
private Long createdTime; 
private String status; 
private int noOfGames; 
private int noOfPoints; 
private String type; 
private Long date; 

@Relationship(type="PLAY_MATCH",direction= Relationship.UNDIRECTED) 
private PlayMatch playMatch; 

public Match() { 

} 

public Match(String createdBy, Long createdTime, String status, 
    int noOfGames, int noOfPoints, String type, Long date) { 
    super(); 
    this.createdBy = createdBy; 
    this.createdTime = createdTime; 
    this.status = status; 
    this.noOfGames = noOfGames; 
    this.noOfPoints = noOfPoints; 
    this.type = type; 
    this.date = date; 
} 

public PlayMatch getPlayMatch() { 
    return playMatch; 
} 

public void setPlayMatch(PlayMatch playMatch) { 
    this.playMatch = playMatch; 
} 
// after this i have getters & setters and toString method for above fields. 

} 

код Игрок

@NodeEntity(label = "Player") 
public class Player extends Entity { 

private String address; 
private String preferredSport; 
private float height; 
private float weight; 
private String phone; 
private String photo; 

@Relationship(type="PLAY_MATCH") 
private PlayMatch playMatch; 

public PlayMatch getPlayMatch() { 
    return playMatch; 
} 

public void setPlayMatch(PlayMatch playMatch) { 
    this.playMatch = playMatch; 
} 

public Player() { 
} 

public Player(String address, String preferredSport, float height, 
    float weight, String phone, String photo) { 
    super(); 
    this.address = address; 
    this.preferredSport = preferredSport; 
    this.height = height; 
    this.weight = weight; 
    this.phone = phone; 
    this.photo = photo; 
} 

// after this i have getters & setters and toString method for above fields. 
} 
+0

Как вы создали PlayMatch - можете ли вы поделиться кодом? Также как выглядит Match и Player? – Luanne

+0

@ Luanne Я обновил сообщение, пожалуйста, просмотрите его и дайте мне знать для получения обновлений, заблаговременно – Aditya

+0

Выглядит хорошо, в чем проблема? Вы устанавливаете PlayMatch на проигрывателе и играете перед сохранением? – Luanne

ответ

0

Я думаю, что у вас есть playmatch Relat иона внутри конечного узла игрока. Если вы прокомментируете следующий код в узле плеера. Он должен работать. Я также прилагается образец JSon переходить из пользовательского интерфейса в URL матча (/ апи/матч) вместо (/ апи/playmatch)

@Relationship(type="PLAY_MATCH") 
private PlayMatch playMatch; 

public PlayMatch getPlayMatch() { 
    return playMatch; 
} 

public void setPlayMatch(PlayMatch playMatch) { 
    this.playMatch = playMatch; 
} 

Пример JSON

{ 
    "type": "typename", 
    "status": "statusname", 
    "createdTime": 1435928223021, 
    "noOfGames": 5, 
    "noOfPoints": 19, 
    "playMatch": {"challengedBy" : "John", "player1" : {"id":732}, "match":{"type": "typename", 
    "status": "statusname", 
    "createdTime": 1435928223021, 
    "noOfGames": 5, 
    "noOfPoints": 19}} 
} 

это должно создать новый матч и новые отношения с собственностью challengeedBy к существующему игровому узлу с идентификатором 732.

проверить и сообщить, если это работает.

+0

Позвольте мне проверить и вернуться к вам, спасибо за ответ. – Aditya

+0

Спасибо @Ganesh Babu .. Теперь я отлично работаю, я могу создать отношения со свойствами. – Aditya

Смежные вопросы