/** * Fetch from datastore and cast to given childClazz (no cache is performed) * * @param anotherClazz the clazz to cast to * @param <TT> The generic parameter of the child clazz * @return the fetched entity */ public <TT> TT fetch(Class<TT> anotherClazz) { return r.query(anotherClazz).fetch(this); }
public T fetch(Long id) { IdRef<?> idRef = IdRef.create(r, clazz, id); return fetch(idRef); }
public T fetch(String name) { IdRef<?> idRef = IdRef.create(r, clazz, name); return fetch(idRef); }
public T fetch(String name) { return RepositoryTransformers.execute(query.getRepository(), query.fetch(name), transformName); }
public T fetch(IdRef<?> idRef) { return RepositoryTransformers.execute(query.getRepository(), query.fetch(idRef), transformName); }
public T fetch(Long id) { return RepositoryTransformers.execute(query.getRepository(), query.fetch(id), transformName); }
@Override public Object action() { QueryBuilder<?> query = query(); try { if (hasTransformer()) { Object object = query.transform(getTransformerName()).fetch(id); applyGetFacade(object); return object; } if (hasShieldCondition()) { query.and(shield.getWhere()); } Object object = query.fetch(id); applyGetFacade(object); return object; } catch (NoResultException e) { throw new HttpException(404); } }
@Test public void testForcedResponseById() { BasicObject xpto = yawp.save(new BasicObject("xpto")); BasicObject fake = new BasicObject("fake"); BasicObject nonForcedObj = yawp.query(BasicObject.class).fetch(xpto.getId()); assertEquals("xpto", nonForcedObj.getStringValue()); BasicObject forcedObj = yawp(BasicObject.class).forceResult(QueryType.FETCH, fake).fetch(xpto.getId()); assertEquals("fake", forcedObj.getStringValue()); }
@Test(expected = NoResultException.class) public void testDelete() { BasicObject object = new BasicObject(); yawp.save(object); yawp.destroy(object.getId()); yawp(BasicObject.class).fetch(object.getId()); }
@Test public void testQueryId() { BasicObject object = new BasicObject(); r1.save(object); assertNotNull(r1.query(BasicObject.class).fetch(object.getId())); assertNull(r2.query(BasicObject.class).whereById("=", object.getId()).first()); }
@Test public void testSaveAndChange() { BasicObject object1 = new BasicObject("xpto"); BasicObject object2 = new BasicObject("xpto"); r1.save(object1); r2.save(object2); assertNotNull(r1.query(BasicObject.class).fetch(object1.getId())); assertNotNull(r2.query(BasicObject.class).fetch(object2.getId())); object1.setStringValue("lala"); r1.save(object1); assertNull(r1.query(BasicObject.class).where("stringValue", "=", "xpto").first()); assertNotNull(r2.query(BasicObject.class).where("stringValue", "=", "xpto").first()); } }
@Test public void testUpdateFacade() { saveObject(1l, "xpto", 10); login("amy"); String json = put("/shielded_objects/1", "{\"id\": \"/shielded_objects/1\", \"stringValue\": \"new-xpto\", \"intValue\": 99}"); ShieldedObject retrievedObject = from(json, ShieldedObject.class); assertEquals("xpto", retrievedObject.getStringValue()); assertNull(retrievedObject.getIntValue()); ShieldedObject objectInDatastore = yawp(ShieldedObject.class).fetch(1l); assertEquals("xpto", objectInDatastore.getStringValue()); assertEquals((Integer) 99, objectInDatastore.getIntValue()); }