Я пытаюсь сохранить некоторые @RelationshipEntity:
У меня есть анкеты, каждая из которых связана с некоторыми вопросами.
Сначала я попытался, как следует:
@RelatedToVia
private Set<HasQuestionRelationship> question = new HashSet<HasQuestionRelationship();
и сохраните только рут. Это подводит меня к этой проблеме:
http://forum.springsource.org/showthread.php?124316-Spring-Data-Neo4j-NullPointerException-with-RelatedToVia и этот открытый выпуск https://jira.springsource.org/browse/DATAGRAPH-216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel#issue-tabs
тогда я попытался сохранить только одно отношение:
@RelatedToVia(elementClass=HasQuestionRelationship.class, type="HAS_QUESTION", direction=Direction.OUTGOING)
private HasQuestionRelationship question2;
мой класс отношений выглядит так:
@RelationshipEntity(type="HAS_QUESTION")
public class HasQuestionRelationship {
@GraphId
Long id;
private String name;
@StartNode
private QuestionnaireNode questionnaire;
@EndNode
private QuestionNode question;
public HasQuestionRelationship() {
}
public HasQuestionRelationship(QuestionnaireNode questionnaireNode,
QuestionNode question, String string) {
if (question == null)
System.out.println("csxa");
this.questionnaire = questionnaireNode;
this.question = question;
this.name = string;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public QuestionnaireNode getQuestionnaire() {
return questionnaire;
}
public void setQuestionnaire(QuestionnaireNode questionnaire) {
this.questionnaire = questionnaire;
}
public QuestionNode getQuestion() {
return question;
}
public void setQuestion(QuestionNode question) {
this.question = question;
}
}
моя классная анкета выглядит так:
public class QuestionnaireNode extends BaseNode {
@RelatedToVia(elementClass=HasQuestionRelationship.class, type="HAS_QUESTION", direction=Direction.OUTGOING)
private HasQuestionRelationship question2;
public QuestionnaireNode() {}
public QuestionnaireNode(String name) {
setName(name);
}
public QuestionnaireNode(String name, QuestionNode question) {
setName(name);
this.question2 = new HasQuestionRelationship(this, question, "testrelation");
}
public HasQuestionRelationship getQuestion2() {
return question2;
}
public void setQuestion(HasQuestionRelationship question) {
this.question2 = question;
}
}
Теперь я попытался сохранить некоторые тестовые данные:
QuestionNode question = new TextQuestionNode("question");
QuestionnaireNode questionnaire = new QuestionnaireNode("questionnaire");
HasQuestionRelationship relationtype = new HasQuestionRelationship(questionnaire, question, "mytest");
questionnaire.setQuestion(relationtype);
try {
myRepository.save(question);
myRepository.save(questionnaire);
} catch (Exception e) {
e.printStackTrace();
}
Нет исключений. Я счастлив, но если я загляну в свою базу данных, я вижу только 2 узла, но между ними нет никакой связи. Где моя вина?
Спасибо