Usando la primavera-data-Neo4j, que quieren crear dos clases usando @RelationshipEntity(type="OWNS")
para vincular una clase Person
a la vez un Pet
y Car
.Clases de relación múltiple con el mismo tipo
@RelationshipEntity(type="OWNS")
public class OwnsCar {
@Indexed
private String name;
@StartNode
private Person person;
@EndNode
private Car car;
}
@RelationshipEntity(type="OWNS")
public class OwnsPet {
@Indexed
private String name;
@EndNode
private Person person;
@StartNode
private Pet pet;
}
Esto ahorra a la base de datos Gráfico correctamente sin ningún problema, ya que puedo consultar el real Node
y Relationship
y ver que tipo , etc.
Pero cuando intento utilizar @RelatedTo(type="OWNS", elementClass=Pet.class)
I o bien obtener una excepción de conversión de clase, o cuando uso la inicialización diferida obtengo resultados incorrectos.
@NodeEntity
public class Person {
@Indexed
private String name;
@RelatedTo(type="OWNS", direction=Direction.OUTGOING, elementClass=Pet.class)
private Set<Pet> pets;
@RelatedTo(type="OWNS", direction=Direction.OUTGOING, elementClass=Car.class)
private Set<Car> cars;
}
El resultado me sale cuando intento imprimir nuestro mi persona (mi toString()
se ha omitido, pero simplemente llama al toString()
para cada campo) es la siguiente:
Person [nodeId=1, name=Nick, pets=[Car [nodeId=3, name=Thunderbird]], cars=[Car [nodeId=3, name=Thunderbird]]]
¿Alguien sabe si esto se puede hacer, se debe hacer, ¿es solo un error o una característica que falta?