Relations
With the annotation @Relations
applied on a collection or array field in a
class annotated with @Document
, the nested objects are fetched from the
database over a graph traversal with your current object as the starting point.
The most relevant parameter is edge
. With edge
you define the edge collection -
which should be used in the traversal - using the class type. With the parameter
depth
you can define the maximal depth for the traversal (default 1) and the
parameter direction
defines whether the traversal should follow outgoing or
incoming edges (default Direction.ANY).
Examples
@Document(value="persons")
public class Person {
@Relations(edge=Relation.class, depth=1, direction=Direction.ANY)
private List<Person> friends;
}
@Edge(name="relations")
public class Relation {
}
Note: Since arangodb-spring-data 3.0.0 the annotation @Relations
also work
on non-collection/non-array fields. If multiple documents are linked with the
entity, it is not guaranteed that the same document is returned every time.
Use at your own risk.