не могу сохранить @RelationshipEntity - PullRequest
2 голосов
/ 27 марта 2012

Я пытаюсь сохранить некоторые @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 узла, но между ними нет никакой связи. Где моя вина?

Спасибо

...