Провел несколько дней, пытаясь понять, почему это не работает. Моя модель Player-[:PLAYED_WITH_TEAM]->team-[:CONTESTED_IN]->league
. Несколько примеров этого соотношения следующим образомне удалось создать более двух одинаковых отношений между двумя узлами
bob-[:PLAYED_WITH_TEAM]->falcons-[:CONTESTED_IN]->ABC League
alice-[:PLAYED_WITH_TEAM]->falcons-[:CONTESTED_IN]->ABC League
bob-[:PLAYED_WITH_TEAM]->falcons-[:CONTESTED_IN]->XYZLeague
Боб играл за одну команду «Соколы» в двух лье ABC и XYZ. Это тот факт, который я хочу захватить. Поскольку Боб играл за ту же команду в 2 разных лигах, мне нужно иметь два отношения PLAYED_WITH_TEAM между теми же начальными (Bob) и конечными (Falcons) узлами.
Я использую данные весны и определены сущности. Я могу создать 2 таких отношения, но не более двух, используя весенние данные. т. е. если боб играл за ту же команду Falcons за третью лигу, я не могу создать это третье отношение. Я не уверен, где проблема. Ниже мой код для создания нового отношения. PlayedWith является RelationshipEntity
с Player
в качестве стартового узла и Team
в качестве конечного узла.
private PlayedWith createPlayedWithRelation(League currentLeague, Team team, Player p)
{
System.err.println("Creating PLAYED_WITH_TEAM relation between " + team + " and " + p + " and " + currentLeague);
PlayedWith playedWith = template.createRelationshipBetween(p, team, PlayedWith.class, "PLAYED_WITH_TEAM", true);
playedWith.setDuring(currentLeague.getStartDate());
playedWith.setInLeague(currentLeague);
playedWith.setPlayer(p);
playedWith.setTeam(team);
playedWith.setAsCaptain(p.isCaptain());
team.addPlayer(p);
template.save(playedWith);
return playedWith;
}
PlayedWith
@RelationshipEntity (type = "PLAYED_WITH_TEAM")
public class PlayedWith
{
@GraphId
private Long nodeId;
@StartNode
Player player;
@Fetch
@EndNode
Team team;
}
Позвольте мне знать, если есть альтернативный способ хранения этого сценария.
Это была моя первоначальная модель, но этот подход имеет недостаток. Как вы можете найти игроков Falcon, которые играли только в лиге XYZ? Игрок может не играть во всех лигах. –
Тогда вам нужно другое отношение от игрока к лиге. – h3nrik