我现有的@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中删除
答案 0 :(得分:2)
这是Neo4j-OGM的责任。
对于Node的多个标签,您应该在Java中使用继承。
@NodeEntity
public abstract class DomainEntity { ... }
public class Company extends DomainObject { ... }
public class PublicCompany extends Company { ... }
答案 1 :(得分:2)
正如@MicTech指出的那样,现在实现这一目标的唯一方法是通过你的对象模型。
但是,如果要将多个标签附加到现有节点实体和存储库,则在当前版本中无法实现。 您可能有一个服务器扩展来分配其他标签,但这些标签实际上并不可用。
不幸的是,由于产品路线图仍在讨论中,我们现在没有确定实施此事的确切日期,因为产品路线图仍在讨论中。