让我们有这个类结构:
@NodeEntity
abstract class BasicNodeEntity {
@GraphId
private Long nodeId;
//...
}
abstract class IdentifiableEntity extends BasicNodeEntity {
private String id;
//...
}
abstract class Ad extends IdentifiableEntity {
//... Ad attibutes
}
class OfferAd extends Ad {
// ... OfferAd attibutes
}
通过OfferAd
保存Neo4jRepository
个节点,我希望该节点有两个标签:OfferAd
和Ad
(继承)。但是,标签Ad
未添加到节点中。
我知道我可以通过密码查询来保存节点,但我想知道它是否可以通过Neo4jRepository
来实现。
我已经审核了this question(与SDN3相关),我认为它与我的用例非常接近,但似乎无法正常工作......
任何帮助将不胜感激。感谢
答案 0 :(得分:8)
标签规则如下:
因此,如果从基类中删除摘要或添加@NodeEntity
注释,您应该会看到预期的结果。
此外(OGM 2.0.4中的新增内容和2.0.5中的修补程序),您可以通过创建Collection<String>
类型的字段并使用@Labels
注释来添加和删除其他标签,例如:
@Labels
private List<String> labels = new ArrayList<>();
使用版本2.0.4(gradle):
compile "org.neo4j:neo4j-ogm-core:{version}"
compile "org.neo4j:neo4j-ogm-http-driver:{version}"
答案 1 :(得分:2)