一个@NodeEntity的SDN 4.0多标签

时间:2015-10-13 04:01:57

标签: neo4j spring-data-neo4j spring-data-neo4j-4

我现有的@NodeEntity如下

@NodeEntity
public class Company {

@GraphId
private Long id;

private String name;

private String blah;

@Repository

@Repository
public interface CompanyRepository extends GraphRepository<Company> {

Company findByName(String name);

要在neo4j中创建新的Company,只需执行

Company company = new Company();
company.setName("Company Name");
repository.save(company);

这将在标签为Company的neo4j中创建一个Company节点。

但是,我也希望能够使用不同的标签创建它。我可以使用现有的域名和带有单独标签的repo来代替创建新的@NodeEntity和新的@Repository吗?

我有谷歌这个,大多数答案只适用于SDN 3. *。其中一些建议使用@Labels标注集合字段,但看起来此@Labels已从SDN4.0中删除

2 个答案:

答案 0 :(得分:2)

这是Neo4j-OGM的责任。

对于Node的多个标签,您应该在Java中使用继承。

@NodeEntity
public abstract class DomainEntity { ... }

public class Company extends DomainObject { ... }

public class PublicCompany extends Company { ... }

答案 1 :(得分:2)

正如@MicTech指出的那样,现在实现这一目标的唯一方法是通过你的对象模型。

但是,如果要将多个标签附加到现有节点实体和存储库,则在当前版本中无法实现。 您可能有一个服务器扩展来分配其他标签,但这些标签实际上并不可用。

不幸的是,由于产品路线图仍在讨论中,我们现在没有确定实施此事的确切日期,因为产品路线图仍在讨论中。