Search in sources :

Example 6 with GroupMember

use of org.neo4j.ogm.domain.gh824.GroupMember in project neo4j-ogm by neo4j.

the class DeepNestQueryingOfRelationshipEntitiesIntegrationTest method flattenedPathSegmentsShouldWorkFromBothEnds.

@Test
public void flattenedPathSegmentsShouldWorkFromBothEnds() {
    Filter outgoing = new Filter("name", ComparisonOperator.EQUALS, "U1");
    outgoing.setOwnerEntityType(GroupMember.class);
    outgoing.setNestedPath(new Filter.NestedPathSegment("user", User.class));
    Filter incoming = new Filter("name", ComparisonOperator.EQUALS, "EuregJUG");
    incoming.setOwnerEntityType(GroupMember.class);
    incoming.setNestedPath(new Filter.NestedPathSegment("group", UserGroup.class));
    Collection<GroupMember> members = sessionFactory.openSession().loadAll(GroupMember.class, outgoing.and(incoming));
    assertThat(members).hasSize(1);
}
Also used : GroupMember(org.neo4j.ogm.domain.gh824.GroupMember) User(org.neo4j.ogm.domain.gh824.User) Filter(org.neo4j.ogm.cypher.Filter) UserGroup(org.neo4j.ogm.domain.gh824.UserGroup) Test(org.junit.Test)

Example 7 with GroupMember

use of org.neo4j.ogm.domain.gh824.GroupMember in project neo4j-ogm by neo4j.

the class DeepNestQueryingOfRelationshipEntitiesIntegrationTest method createData.

@Before
public void createData() {
    sessionFactory.openSession().purgeDatabase();
    Address a1 = new Address();
    a1.setCode("0001");
    Address a2 = new Address();
    a2.setCode("0002");
    City aachen = new City("Aachen");
    City koeln = new City("Köln");
    a2.setCity(aachen);
    User u1 = new User("U1");
    u1.setAddress(a1);
    User u2 = new User("Mr. User");
    u2.setAddress(a1);
    User u3 = new User();
    u3.setAddress(a2);
    UserGroup ug1 = new UserGroup();
    ug1.setCity(aachen);
    ug1.setName("EuregJUG");
    UserGroup ug2 = new UserGroup();
    ug2.setCity(koeln);
    ug2.setName("JUG Köln");
    List<GroupMember> members = Arrays.asList(new GroupMember(u1, ug1), new GroupMember(u2, ug2), new GroupMember(u3, ug2));
    Session session = sessionFactory.openSession();
    members.forEach(session::save);
}
Also used : GroupMember(org.neo4j.ogm.domain.gh824.GroupMember) User(org.neo4j.ogm.domain.gh824.User) Address(org.neo4j.ogm.domain.gh824.Address) City(org.neo4j.ogm.domain.gh824.City) UserGroup(org.neo4j.ogm.domain.gh824.UserGroup) Session(org.neo4j.ogm.session.Session) Before(org.junit.Before)

Example 8 with GroupMember

use of org.neo4j.ogm.domain.gh824.GroupMember in project neo4j-ogm by neo4j.

the class DeepNestQueryingOfRelationshipEntitiesIntegrationTest method nPlus1PathSegmentsShouldWork.

@Test
public void nPlus1PathSegmentsShouldWork() {
    Filter filter = new Filter("name", ComparisonOperator.EQUALS, "Aachen");
    filter.setOwnerEntityType(GroupMember.class);
    filter.setNestedPath(new Filter.NestedPathSegment("user", User.class), new Filter.NestedPathSegment("address", Address.class), new Filter.NestedPathSegment("city", City.class));
    Collection<GroupMember> members = sessionFactory.openSession().loadAll(GroupMember.class, filter);
    assertThat(members).hasSize(1);
}
Also used : GroupMember(org.neo4j.ogm.domain.gh824.GroupMember) User(org.neo4j.ogm.domain.gh824.User) Address(org.neo4j.ogm.domain.gh824.Address) Filter(org.neo4j.ogm.cypher.Filter) City(org.neo4j.ogm.domain.gh824.City) Test(org.junit.Test)

Example 9 with GroupMember

use of org.neo4j.ogm.domain.gh824.GroupMember in project neo4j-ogm by neo4j.

the class DeepNestQueryingOfRelationshipEntitiesIntegrationTest method nPathSegmentsShouldWorkFromBothEnds.

@Test
public void nPathSegmentsShouldWorkFromBothEnds() {
    Filter outgoing = new Filter("code", ComparisonOperator.EQUALS, "0001");
    outgoing.setOwnerEntityType(GroupMember.class);
    outgoing.setNestedPath(new Filter.NestedPathSegment("user", User.class), new Filter.NestedPathSegment("address", Address.class));
    Filter incoming = new Filter("name", ComparisonOperator.EQUALS, "Aachen");
    incoming.setOwnerEntityType(GroupMember.class);
    incoming.setNestedPath(new Filter.NestedPathSegment("group", UserGroup.class), new Filter.NestedPathSegment("city", City.class));
    Collection<GroupMember> members = sessionFactory.openSession().loadAll(GroupMember.class, outgoing.and(incoming));
    assertThat(members).hasSize(1);
}
Also used : GroupMember(org.neo4j.ogm.domain.gh824.GroupMember) User(org.neo4j.ogm.domain.gh824.User) Address(org.neo4j.ogm.domain.gh824.Address) Filter(org.neo4j.ogm.cypher.Filter) City(org.neo4j.ogm.domain.gh824.City) UserGroup(org.neo4j.ogm.domain.gh824.UserGroup) Test(org.junit.Test)

Example 10 with GroupMember

use of org.neo4j.ogm.domain.gh824.GroupMember in project neo4j-ogm by neo4j.

the class DeepNestQueryingOfRelationshipEntitiesIntegrationTest method flattenedPathSegmentsShouldWork.

@Test
public void flattenedPathSegmentsShouldWork() {
    Filter filter = new Filter("name", ComparisonOperator.EQUALS, "Mr. User");
    filter.setOwnerEntityType(GroupMember.class);
    filter.setNestedPath(new Filter.NestedPathSegment("user", User.class));
    Collection<GroupMember> members = sessionFactory.openSession().loadAll(GroupMember.class, filter);
    assertThat(members).hasSize(1);
}
Also used : GroupMember(org.neo4j.ogm.domain.gh824.GroupMember) User(org.neo4j.ogm.domain.gh824.User) Filter(org.neo4j.ogm.cypher.Filter) Test(org.junit.Test)

Aggregations

GroupMember (org.neo4j.ogm.domain.gh824.GroupMember)8 Test (org.junit.Test)7 Filter (org.neo4j.ogm.cypher.Filter)7 User (org.neo4j.ogm.domain.gh824.User)6 ArrayList (java.util.ArrayList)5 UserGroup (org.neo4j.ogm.domain.gh824.UserGroup)5 List (java.util.List)4 Address (org.neo4j.ogm.domain.gh824.Address)4 City (org.neo4j.ogm.domain.gh824.City)4 EntityManager (javax.persistence.EntityManager)3 EntityTransaction (javax.persistence.EntityTransaction)3 GroupMember (org.datanucleus.samples.one_many.unidir_2.GroupMember)3 UserGroup (org.datanucleus.samples.one_many.unidir_2.UserGroup)3 PersistenceManager (javax.jdo.PersistenceManager)2 Transaction (javax.jdo.Transaction)2 ExpertGroupMember (org.datanucleus.samples.annotations.one_many.unidir_2.ExpertGroupMember)2 GroupMember (org.datanucleus.samples.annotations.one_many.unidir_2.GroupMember)2 ModeratedUserGroup (org.datanucleus.samples.annotations.one_many.unidir_2.ModeratedUserGroup)2 UserGroup (org.datanucleus.samples.annotations.one_many.unidir_2.UserGroup)2 HashMap (java.util.HashMap)1