一个@NodeEntity 的 SDN 4.0 多标签

SDN 4.0 multi labels for one @NodeEntity

我现有的@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);

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

但是,我也希望能够使用不同的标签创建它。除了创建一个新的 @NodeEntity 和一个新的 @Repository,我可以使用现有的域和带有单独标签的 repo 来做到这一点吗?

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

中删除

这是Neo4j-OGM的责任。

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

@NodeEntity
public abstract class DomainEntity { ... }

public class Company extends DomainObject { ... }

public class PublicCompany extends Company { ... }

正如@MicTech 所指出的,目前实现这一目标的唯一方法是通过您的对象模型。

但是如果你想将多个标签附加到一个现有的节点实体和存储库,在当前版本中是不可能的。 您可能有一个服务器扩展来分配额外的标签,但这些标签实际上不会被您的存储库使用。

遗憾的是,由于产品路线图仍在讨论中,我们现在还没有确定的实施日期。