无法从 SDN4 检索一组超类型对象
Cannot retrieve a set of super type object from SDN4
Neo4j 可以将超类型保存为标签之一的功能非常棒,但我无法像预期的那样检索一组超类型。
超级class被称为服务
@NodeEntity
public abstract class Service implements java.io.Serializable {...}
子 class 称为 HostingService
@NodeEntity
public class HostingService extends Service implements java.io.Serializable{
@GraphId Long id;
....
}
还有一个叫SystemCatalog的class拥有一套Service
@NodeEntity
public class SystemCatalog implements java.io.Serializable{
@GraphId Long id;
....
@Relationship(type="SERVICE", direction=Relationship.OUTGOING)
private Set<Service> services = new HashSet<>();
}
保存测试方法运行良好,neo4j 浏览器显示 HostingService 保存了两个标签(Service 和 HostingService)
@Test
public void testSaveService(){
SystemCatalog sys = new SystemCatalog();
sys.setSystemName("Test Service");
HostingService host = new HostingService();
host.setCostCenter("Cost Center A");
sys.getServices().add(host);
Long id = systemCatalogRepository.save(sys).getId();
System.out.println(id);
}
检索测试方法出错,返回的SystemCatalog根本没有任何服务
@Test
public void testGetService(){
SystemCatalog sys2 = systemCatalogRepository.findOne(new Long(243));
System.out.println(sys2);
}
这是一个错误,您的代码看起来不错。
Neo4j 可以将超类型保存为标签之一的功能非常棒,但我无法像预期的那样检索一组超类型。
超级class被称为服务
@NodeEntity
public abstract class Service implements java.io.Serializable {...}
子 class 称为 HostingService
@NodeEntity
public class HostingService extends Service implements java.io.Serializable{
@GraphId Long id;
....
}
还有一个叫SystemCatalog的class拥有一套Service
@NodeEntity
public class SystemCatalog implements java.io.Serializable{
@GraphId Long id;
....
@Relationship(type="SERVICE", direction=Relationship.OUTGOING)
private Set<Service> services = new HashSet<>();
}
保存测试方法运行良好,neo4j 浏览器显示 HostingService 保存了两个标签(Service 和 HostingService)
@Test
public void testSaveService(){
SystemCatalog sys = new SystemCatalog();
sys.setSystemName("Test Service");
HostingService host = new HostingService();
host.setCostCenter("Cost Center A");
sys.getServices().add(host);
Long id = systemCatalogRepository.save(sys).getId();
System.out.println(id);
}
检索测试方法出错,返回的SystemCatalog根本没有任何服务
@Test
public void testGetService(){
SystemCatalog sys2 = systemCatalogRepository.findOne(new Long(243));
System.out.println(sys2);
}
这是一个错误,您的代码看起来不错。