0

pls はどうやって行くか私にアドバイスすることが可能です..同じエンティティ関係を行う..

たとえば。Entity(class Person) relatedTo Entity(class Person)。

コード:

@NodeEntity 
public class Person 
{ 
    @GraphId @GeneratedValue 
    private Long id; 

    @Indexed(indexType = IndexType.FULLTEXT, indexName = "searchByPersonName") 
    private String personName; 

    @Fetch @RelatedTo(type = "CONNECTS_TO", direction = Direction.BOTH) 
    private Set<ConnectedPersons> connectedPersons; 

    public ConnectedPersons connectsTo(Person endPerson, String connectionProperty) 
    {       
        ConnectedPersons connectedPersons = new ConnectedPersons(this, endPerson, connectionProperty); 
        this.connectedPersons.add(connectedPersons); //Null Pointer Here(connectedPersons is null)
        return connectedPersons; 
    }
}

コード:

@RelationshipEntity(type = "CONNECTED_TO") 
public class ConnectedPersons{ 

@GraphId private Long id; 

@StartNode private Person startPerson; 

@EndNode private Person endPerson; 

private String connectionProperty; 

public ConnectedPersons() { } 

public ConnectedPersons(Person startPerson, Person endPerson, String connectionProperty) {             this.startPerson = startPerson; this.endPerson = endPerson; this.connectionProperty = connectionProperty; 
}

私は同じクラスとの関係を持とうとしています..つまり、人に接続された人.. Junitテストを呼び出すと:

    Person one = new Person ("One"); 

Person two = new Person ("Two"); 

personService.save(one); //Works also when I use template.save(one)

personService.save(two); 

Iterable<Person> persons = personService.findAll(); 

for (Person person: persons) { 
System.out.println("Person Name : "+person.getPersonName()); 
} 

one.connectsTo(two, "Sample Connection"); 

template.save(one);

実行しようとすると Null ポインターが表示されone.connectsTo(two, "Prop"); ます。どこが間違っているのか教えてください。

前もって感謝します。

4

2 に答える 2

1

connectedPersonsコレクションを初期化していないため、以下のコードで null ポインター例外が発生しています。

this.connectedPersons.add(connectedPersons); //Null Pointer Here(connectedPersons is null)

以下に示すようにコレクションを初期化します

@Fetch @RelatedTo(type = "CONNECTS_TO", direction = Direction.BOTH) 
private Set<ConnectedPersons> connectedPersons=new HashSet<ConnectedPersons>();
于 2013-08-24T01:42:53.310 に答える