public <T> T update(UpdateQuery<T> query) throws DBException { try { query.setDb(this); Session session = this.beginTransaction(); T result = query.query(session); this.commit(); return result; } catch (DBException e) { this.rollback(); throw e; } catch (Exception e) { this.rollback(); throw new DBException("Update Error: ", e); } finally { this.endTransaction(); } }
@Override public UpdateExtendQuery<T> where(String[] whereArgs, String[] argValues) { super.where(whereArgs, argValues); return this; }
@Override public UpdateExtendQuery<T> where(String whereClause) { super.where(whereClause); return this; }
@Override public UpdateResponse update(UpdateQuery query) { String indexName = isNotBlank(query.getIndexName()) ? query.getIndexName() : getPersistentEntityFor(query.getClazz()).getIndexName(); String type = isNotBlank(query.getType()) ? query.getType() : getPersistentEntityFor(query.getClazz()).getIndexType(); Assert.notNull(indexName, "No index defined for Query"); Assert.notNull(type, "No type define for Query"); Assert.notNull(query.getId(), "No Id define for Query"); Assert.notNull(query.getIndexRequest(), "No IndexRequest define for Query"); UpdateRequestBuilder updateRequestBuilder = client.prepareUpdate(indexName, type, query.getId()); if (query.DoUpsert()) { updateRequestBuilder .setDocAsUpsert(true) .setUpsert(query.getIndexRequest()) .setDoc(query.getIndexRequest()); } else { updateRequestBuilder.setDoc(query.getIndexRequest()); } return updateRequestBuilder.execute().actionGet(); }
/** * update on object from cassandra by key. * * @param key the key * @param bean the bean * @return the update */ public Update runUpdate(Object key, Class<?> bean) { return updateQuery.runUpdate(key, bean); }