* annotation. Just have a look at the {@link Person} entity.
*/
@Test
public void relations() {
final long id;
Person person;
Person friendA;
Person friendB;
Person friendC;
PrimaryIndex<Long, Person> primaryIndex = entityStore.getPrimaryIndex(Long.class, Person.class);
/*
Set up test data: one guy (John Doe) and three friends: Alfred, Berta and Charles.
*/
{
person = new Person("Doe", "John");
friendA = new Person("Friend", "Alfred");
friendB = new Person("Friend", "Bertha");
friendC = new Person("Friend", "Charles");
}
/*
Persist everything. First, we store the dependencies (the friends), then we save the main
persons referencing these friends.
*/
{
primaryIndex.put(friendA);
primaryIndex.put(friendB);
primaryIndex.put(friendC);
LOG.info("Friends (not yet related): " + friendA + ", " + friendB + ", " + friendC);
person.addFriend(friendA.getId());
person.addFriend(friendB.getId());
person.addFriend(friendC.getId());
primaryIndex.put(person);
id = person.getId();
}
/*
Let us see if everything was stored...
*/
{
person = primaryIndex.get(id);
LOG.info(person + ", has friends with IDs: " + person.getFriends());
for (final long friendId : person.getFriends()) {
final Person friend = primaryIndex.get(friendId);
LOG.info("-> " + friend);
}
}
}