ObjectContext context = ... SQLTemplate select = new SQLTemplate(MyClass.class, "SELECT #result('PK_COLUMN' 'long') FROM MY_TABLE"); List result = context.performQuery(select);
ObjectContext context = ... List<MyEntity> objects = context.performQuery(...); MyEntity o = objects.get(0); o.setXyz("new value"); // I assume you got to this point ... context.commitChanges();
public void setById(ObjectContext context, Object entity, Object foreignId) throws Exception { IdCoder idCoder = new IdCoder(context.getEntityResolver()); ObjectId objectId = idCoder.getObjectId(String.valueOf(foreignId)); ObjectIdQuery query = new ObjectIdQuery(objectId); List<?> list = context.performQuery(query); Object newForeignObject = list.size() == 0 ? null : list.get(0); setter.invoke(entity, newForeignObject); }
private ModelInstance deleteModelInstance(ExtConfig extConfig, Object id, String key, Object value) throws Exception { ObjectContext objectContext = getObjectContext(); Class<?> clazz = extConfig.getEntityClass(); Object entity = id != null ? this.getEntity(objectContext, clazz, id) : this.getEntity(objectContext, clazz, key, value); ModelInstance model = new ModelInstance(extConfig, entity); objectContext.deleteObjects(entity); objectContext.commitChanges(); return model; }
public ObjectContextQueryAction(ObjectContext actingContext, ObjectContext targetContext, Query query) { this.actingContext = actingContext; this.query = query; // no special target context and same target context as acting context mean the // same thing. "normalize" the internal state to avoid confusion this.targetContext = targetContext != actingContext ? targetContext : null; this.metadata = query.getMetaData(actingContext.getEntityResolver()); }
private <T extends DataObject> void deleteByParent(DeleteContext<T> context, ObjectContext cayenneContext, AgEntity<?> agParentEntity) { EntityParent<?> parent = context.getParent(); Object parentObject = Util.findById(cayenneContext, parent.getType(), agParentEntity, parent.getId().get()); if (parentObject == null) { ObjEntity entity = cayenneContext.getEntityResolver().getObjEntity(parent.getType()); throw new AgException(Response.Status.NOT_FOUND, "No parent object for ID '" + parent.getId() + "' and entity '" + entity.getName() + "'"); } Expression qualifier = parent.qualifier(cayenneContext.getEntityResolver()); SelectQuery<?> select = SelectQuery.query(context.getType()); select.andQualifier(qualifier); List<?> objects = cayenneContext.select(select); cayenneContext.deleteObjects(objects); cayenneContext.commitChanges(); }
IdCoder idCoder = new IdCoder(context.getEntityResolver()); for (Object listItemId : listItemIds) { ObjectId objectId = idCoder.getObjectId(String.valueOf(listItemId)); ObjectIdQuery query = new ObjectIdQuery(objectId); List<?> list = context.performQuery(query); Object newForeignObject = list.size() == 0 ? null : list.get(0); if (newForeignObject != null) newCollection.add(newForeignObject); Object testEntity = targetGetter.invoke(joinEntity); if (oldObject.equals(testEntity)) { context.deleteObjects(joinEntity); break;
public int[] update(ObjectContext context) { return context.performGenericQuery(this).firstUpdateCount(); } }
private void commitTarget(DeleteSegment<T> segment) { segment.getContext().commitChanges(); }
private <T extends DataObject> void deleteById(DeleteContext<T> context, ObjectContext cayenneContext, AgEntity<T> agEntity) { for (AgObjectId id : context.getIds()) { Object o = Util.findById(cayenneContext, context.getType(), agEntity, id.get()); if (o == null) { ObjEntity entity = cayenneContext.getEntityResolver().getObjEntity(context.getType()); throw new AgException(Response.Status.NOT_FOUND, "No object for ID '" + id + "' and entity '" + entity.getName() + "'"); } cayenneContext.deleteObject(o); } cayenneContext.commitChanges(); }
public RemoteIncrementalFaultList(ObjectContext context, Query paginatedQuery) { this.metadata = paginatedQuery.getMetaData(context.getEntityResolver()); QueryResponse response = context.getChannel().onQuery(context, query);
actingContext.getEntityResolver()).isToMany()) { return !DONE; Object object = actingContext.getGraphManager().getNode(id); .getEntityResolver() .getClassDescriptor(id.getEntityName()); && !(actingContext.getChannel() instanceof BaseContext)) { this.response = new ListResponse(); return DONE;
context.performQuery(new RefreshQuery()); chain.addQuery(new EJBQLQuery("delete from E24")); context.performGenericQuery(chain);
protected Object polymorphicObjectFromCache(ObjectId superOid) { Object object = actingContext.getGraphManager().getNode(superOid); if (object != null) { return object; } EntityInheritanceTree inheritanceTree = actingContext.getEntityResolver().getInheritanceTree(superOid.getEntityName()); if (!inheritanceTree.getChildren().isEmpty()) { object = polymorphicObjectFromCache(inheritanceTree, superOid.getIdSnapshot()); } return object; }
@Test public void test_SelectByteArrayProperty() throws IOException { ObjectContext ctx = newContext(); E19 e19 = ctx.newObject(E19.class); e19.setGuid("someValue123".getBytes("UTF-8")); ctx.commitChanges(); Response response = target("/e19/" + Cayenne.intPKForObject(e19)) .queryParam("include", E19.GUID.getName()) .request() .get(); onSuccess(response).bodyEquals(1, "{\"guid\":\"c29tZVZhbHVlMTIz\"}"); }
protected <T extends DataObject> void createSingle(UpdateContext<T> context, ObjectRelator relator, EntityUpdate<T> u) { DataObject o = objectContext.newObject(context.getType()); Map<String, Object> idMap = u.getId(); ObjEntity entity = objectContext.getEntityResolver().getObjEntity(context.getType());
@Override public List<T> select(ObjectContext context) { return context.select(this); }
protected Persistent findObject(Object nodeId) { // first do a lookup in ObjectStore; if even a hollow object is found, // return it; // if not - fetch. Persistent object = (Persistent) context.getGraphManager().getNode(nodeId); if (object != null) { return object; } ObjectId id = (ObjectId) nodeId; // this can happen if a NEW object is deleted and after that its // relationships are // modified if (id.isTemporary()) { return null; } // skip context cache lookup, go directly to its channel Query query = new ObjectIdQuery((ObjectId) nodeId); QueryResponse response = context.getChannel().onQuery(context, query); List<?> objects = response.firstList(); if (objects.size() == 0) { throw new CayenneRuntimeException("No object for ID exists: %s", nodeId); } else if (objects.size() > 1) { throw new CayenneRuntimeException("Expected zero or one object, instead query matched: %d", objects.size()); } return (Persistent) objects.get(0); }
<T extends DataObject> List<T> allItems(UpdateContext<T> context) { SelectQuery<T> query = SelectQuery.query(context.getType()); // apply various request filters identifying the span of the collection if (context.getParent() != null) { EntityResolver resolver = CayenneUpdateStartStage.cayenneContext(context).getEntityResolver(); query.andQualifier(context.getParent().qualifier(resolver)); } if (context.getEntity().getQualifier() != null) { query.andQualifier(context.getEntity().getQualifier()); } // TODO: use SelectBuilder to get Cayenne representation of the // resource, instead of duplicating this here... List<T> objects = CayenneUpdateStartStage.cayenneContext(context).select(query); if (context.isById() && objects.size() > 1) { throw new AgException(Response.Status.INTERNAL_SERVER_ERROR, String.format( "Found more than one object for ID '%s' and entity '%s'", context.getId(), context.getEntity().getAgEntity().getName())); } return objects; }
protected T create(ObjectContext context, Class<T> type) { return context.newObject(type); } }