mirror of https://gitee.com/bigwinds/arangodb
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
---
|
|
layout: default
|
|
description: Relations
|
|
---
|
|
|
|
# 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**
|
|
|
|
```java
|
|
@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.
|