Spring Data Neo4j 2.2.2 を使用していますが、同じ開始ノードと終了ノードで複数の関係を維持するのに問題があります。
個人が会社と複数の契約を持つことができると仮定します。私はこれを次のようにモデル化しました
@NodeEntity
public class Company {...}
と
@NodeEntity
public class Person {
@RelatedToVia
private Set<Contract> contracts;
...
}
と
@RelationshipEntity
public class Contract {
@StartNode
private Person person;
@EndNode
private Company company;
...
}
人に契約を追加するには、次のようなコードを書いています
Contract contract = new Contract();
contract.setPerson(person);
contract.setCompany(company);
// set other contract properties
person.getContracts().add(contract);
personDao.save(person)
はどこpersonDao
ですかGraphRepository<Person>
。
私のテストでは、その人物がまだ同じ会社の契約を持っていない場合、その人物に新しい契約を追加できます。しかし、既存の契約と同じ Company エンド ノードを持つ Person に新しい契約を追加しようとすると、保存されません。
equals()
とhashCode()
は に対して実装されており、 を呼び出したときに@GraphId
すべてのオブジェクトがコントラクトにあることを確認しました。私も試してみましたが、無駄ではありませんでした。Set
save
Collection
Set
何が間違っている可能性がありますか?