Search in sources :

Example 6 with Key

use of dev.morphia.Key in project morphia by mongodb.

the class TestQuery method testKeyList.

@Test
public void testKeyList() {
    final Rectangle rect = new Rectangle(1000, 1);
    Rectangle rectangle = getDs().save(rect);
    assertEquals(rectangle.getId(), rect.getId());
    final FacebookUser fbUser1 = new FacebookUser(1, "scott");
    final FacebookUser fbUser2 = new FacebookUser(2, "tom");
    final FacebookUser fbUser3 = new FacebookUser(3, "oli");
    final FacebookUser fbUser4 = new FacebookUser(4, "frank");
    final List<FacebookUser> users = getDs().save(asList(fbUser1, fbUser2, fbUser3, fbUser4));
    assertEquals(fbUser1.getId(), 1);
    final List<Key<FacebookUser>> fbUserKeys = new ArrayList<>();
    for (FacebookUser user : users) {
        fbUserKeys.add(getMapper().getKey(user));
    }
    assertEquals(fbUserKeys.get(0).getId(), fbUser1.getId());
    assertEquals(fbUserKeys.get(1).getId(), fbUser2.getId());
    assertEquals(fbUserKeys.get(2).getId(), fbUser3.getId());
    assertEquals(fbUserKeys.get(3).getId(), fbUser4.getId());
    final Keys k1 = new Keys(getMapper().getKey(rectangle), fbUserKeys);
    final Keys keys = getDs().save(k1);
    assertEquals(k1.getId(), keys.getId());
    final Datastore datastore = getDs();
    final Keys k1Loaded = datastore.find(Keys.class).filter(eq("_id", k1.getId())).first();
    for (Key<FacebookUser> key : k1Loaded.getUsers()) {
        assertNotNull(key.getId());
    }
    assertNotNull(k1Loaded.getRect().getId());
}
Also used : Datastore(dev.morphia.Datastore) Keys(dev.morphia.test.models.Keys) Rectangle(dev.morphia.test.models.Rectangle) ArrayList(java.util.ArrayList) Key(dev.morphia.Key) FacebookUser(dev.morphia.test.models.FacebookUser) Test(org.testng.annotations.Test)

Example 7 with Key

use of dev.morphia.Key in project morphia by mongodb.

the class TestQuery method testKeys.

@Test
public void testKeys() {
    PhotoWithKeywords pwk1 = new PhotoWithKeywords("california", "nevada", "arizona");
    PhotoWithKeywords pwk2 = new PhotoWithKeywords("Joe", "Sarah");
    PhotoWithKeywords pwk3 = new PhotoWithKeywords("MongoDB", "World");
    getDs().save(asList(pwk1, pwk2, pwk3));
    MongoCursor<Key<PhotoWithKeywords>> keys = getDs().find(PhotoWithKeywords.class).keys();
    assertTrue(keys.hasNext());
    assertEquals(pwk1.id, keys.next().getId());
    assertEquals(pwk2.id, keys.next().getId());
    assertEquals(pwk3.id, keys.next().getId());
    List<UsesCustomIdObject> list = asList(new UsesCustomIdObject(new CustomId("Turk"), "Turk"), new UsesCustomIdObject(new CustomId("JD"), "Dorian"), new UsesCustomIdObject(new CustomId("Carla"), "Espinosa"));
    getDs().save(list);
    Iterator<Key<UsesCustomIdObject>> complexKeys = getDs().find(UsesCustomIdObject.class).keys();
    assertTrue(complexKeys.hasNext());
    assertEquals(list.get(0).getId(), complexKeys.next().getId());
    assertEquals(list.get(1).getId(), complexKeys.next().getId());
    assertEquals(list.get(2).getId(), complexKeys.next().getId());
    assertFalse(complexKeys.hasNext());
}
Also used : CustomId(dev.morphia.test.models.CustomId) UsesCustomIdObject(dev.morphia.test.models.UsesCustomIdObject) Key(dev.morphia.Key) Test(org.testng.annotations.Test)

Example 8 with Key

use of dev.morphia.Key in project morphia by mongodb.

the class TestQueriesOnReferences method testWithKeyQuery.

@Test
public void testWithKeyQuery() {
    final ContainsPic cpk = new ContainsPic();
    final Pic p = new Pic();
    cpk.setPic(p);
    getDs().save(p);
    getDs().save(cpk);
    Query<ContainsPic> query = getDs().find(ContainsPic.class).filter(eq("pic", new Key<>(Pic.class, "pic", p.getId())));
    assertEquals(query.first(new FindOptions().logQuery().limit(1)).getId(), cpk.getId(), query.getLoggedQuery());
}
Also used : FindOptions(dev.morphia.query.FindOptions) ContainsPic(dev.morphia.test.query.TestLegacyQuery.ContainsPic) ContainsPic(dev.morphia.test.query.TestLegacyQuery.ContainsPic) Pic(dev.morphia.test.query.TestLegacyQuery.Pic) Key(dev.morphia.Key) Test(org.testng.annotations.Test)

Aggregations

Key (dev.morphia.Key)8 Test (org.testng.annotations.Test)5 DBRef (com.mongodb.DBRef)2 Datastore (dev.morphia.Datastore)2 Reference (dev.morphia.annotations.Reference)2 MappingException (dev.morphia.mapping.MappingException)2 ListReference (dev.morphia.mapping.experimental.ListReference)2 MapReference (dev.morphia.mapping.experimental.MapReference)2 MorphiaReference (dev.morphia.mapping.experimental.MorphiaReference)2 SetReference (dev.morphia.mapping.experimental.SetReference)2 SingleReference (dev.morphia.mapping.experimental.SingleReference)2 Rectangle (dev.morphia.test.models.Rectangle)2 ArrayList (java.util.ArrayList)2 Nullable (com.mongodb.lang.Nullable)1 EntityModel (dev.morphia.mapping.codec.pojo.EntityModel)1 PropertyModel (dev.morphia.mapping.codec.pojo.PropertyModel)1 FindOptions (dev.morphia.query.FindOptions)1 QueryException (dev.morphia.query.QueryException)1 ChildId (dev.morphia.test.mapping.experimental.TestReferences.ChildId)1 Complex (dev.morphia.test.mapping.experimental.TestReferences.Complex)1