2015-10-13 2 views
1

Я мой существующий @NodeEntity нижеSDN 4,0 мульти этикетки для одного @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.

Однако, я также хочу, чтобы иметь возможность создать это с помощью другой этикетки. Вместо того, чтобы создавать новый @NodeEntity и новый @Repository, могу ли я использовать существующий домен и репо с отдельной меткой, чтобы сделать это?

У меня было это google, большинство ответов применимо только к SDN 3. *. Некоторые из них предполагают, чтобы иметь коллекцию полей пояснением @Labels, но выглядит как этот @Labels был удален из SDN4.0

ответ

2

Как отметил @MicTech, единственный способ достичь этого прямо сейчас - через вашу объектную модель.

Но если вы хотите прикрепить несколько ярлыков к существующему узлу и репозиторию узла, это невозможно в текущей версии. Возможно, у вас может быть расширение сервера для назначения дополнительных меток, но вы не сможете использовать их в своих репозиториях.

К сожалению, у нас нет твердой даты для реализации этого, что мы можем зафиксировать прямо сейчас, поскольку дорожная карта продукта по-прежнему обсуждается.

+0

Спасибо @luanne. – jasonfungsing

2

Это ответственность Neo4j-OGM.

Для нескольких меток для узла вы должны использовать наследование в Java.

@NodeEntity 
public abstract class DomainEntity { ... } 

public class Company extends DomainObject { ... } 

public class PublicCompany extends Company { ... }