3

@RelationshipTypeリレーションシップ タイプにフィールドの注釈が付けられている場合、リレーションシップを取得できません。

Neoclipse では関係が正しいように見えますが、アプリケーションで結果を取得していません。

動作しないコードは次のとおりです (簡略化):

@NodeEntity
public abstract class Entity {

    @RelatedToVia
    private Collection<Relationship> relationships;

    public Relationship relatedTo(Entity entity, String type) {
        Relationship relationship = new Relationship(type, this, entity);
        relationships.add(relationship);

        return relationship;
    }

    ...
}

と:

@RelationshipEntity
public class Relationship {

    @RelationshipType
    private String type;

    ...
 }

動作するコードは次のとおりです。

@RelationshipEntity(type = "something")
public class Relationship {

   ...
}

ただし、これは私のユースケースには適していません (インスタンスRelationshipの任意の組み合わせの間にさまざまなタイプがたくさんありEntityます。

完全なテスト コードは以下のとおりです。AgencyItemは両方とも のサブクラスですEntity

// Create first entity
Agency arnz = agencyRepository.save(new Agency());
arnz.setCode("ARNZ");
agencyRepository.save(arnz);

// Create second entity
Item r123 = itemRepository.save(new Item());
r123.setCode("R123");

// Create parent/child relationship between entities
r123.relatedTo(arnz, EntityRelationshipType.PARENT);
itemRepository.save(r123);

// Retrieve entity from database
Entity entity = itemRepository.findByCode("R123");

// Verify that relationship is present
assertThat(entity.getRelationships().iterator().hasNext(), is(true));

最後の行は、テストが失敗している場所です。手がかりはありますか?

M

PS。私はNeo4jの素人で、たまたま見つけ@RelationshipTypeたので、笑えるほど間違ったことをしているかもしれません。そうだといい!

4

1 に答える 1

2

がっかりさせて申し訳ありませんが、取得中、コードは現在型クラスを探しませんが、関係型としての型@RelatedToViaまたは@RelationshipEntityフィールド名を探しますrelationships。しかし、あなたは有効な主張をしているのですが、JIRAで問題を提起していただけますか?

調べましたtemplate.getRelationshipsBetweenか?

関係のために個別のクラスを作成してみませんか? このアプローチのユースケースは何ですか?

于 2012-06-03T15:32:51.920 に答える