Search in sources :

Example 1 with DELETE

use of io.requery.query.element.QueryType.DELETE in project requery by requery.

the class EntityDataStore method delete.

@Override
public <E extends T> Void delete(Iterable<E> entities) {
    if (entities instanceof Result) {
        // work around for sqlite since the read cursor can't be open during the transaction
        @SuppressWarnings("unchecked") Result<E> result = (Result<E>) entities;
        entities = result.toList();
    }
    Iterator<E> iterator = entities.iterator();
    if (iterator.hasNext()) {
        try (TransactionScope transaction = new TransactionScope(transactionProvider)) {
            E entity = iterator.next();
            EntityProxy<E> proxy = context.proxyOf(entity, true);
            EntityWriter<E, T> writer = context.write(proxy.type().getClassType());
            writer.delete(entities);
            transaction.commit();
        }
    }
    return null;
}
Also used : INSERT(io.requery.query.element.QueryType.INSERT) SELECT(io.requery.query.element.QueryType.SELECT) UPDATE(io.requery.query.element.QueryType.UPDATE) DELETE(io.requery.query.element.QueryType.DELETE) Result(io.requery.query.Result)

Aggregations

Result (io.requery.query.Result)1 DELETE (io.requery.query.element.QueryType.DELETE)1 INSERT (io.requery.query.element.QueryType.INSERT)1 SELECT (io.requery.query.element.QueryType.SELECT)1 UPDATE (io.requery.query.element.QueryType.UPDATE)1