领域实体
领域实体可以围绕节点进行封装。相同的方法也可以用于关系。
示例的源代码位于:Person.java |
首先,存储节点并在包内使其可访问
private final Node underlyingNode;
Person( GraphDatabaseService databaseService, Transaction transaction, Node personNode )
{
this.databaseService = databaseService;
this.transaction = transaction;
this.underlyingNode = personNode;
}
protected Node getUnderlyingNode()
{
return underlyingNode;
}
将属性委托给节点
public String getName()
{
return (String)underlyingNode.getProperty( NAME );
}
确保覆盖这些方法
@Override
public int hashCode()
{
return underlyingNode.hashCode();
}
@Override
public boolean equals( Object o )
{
return o instanceof Person &&
underlyingNode.equals( ( (Person)o ).getUnderlyingNode() );
}
@Override
public String toString()
{
return "Person[" + getName() + "]";
}