All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.avaje.ebean.FutureList Maven / Gradle / Ivy

package com.avaje.ebean;

import javax.persistence.PersistenceException;
import java.util.List;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

/**
 * FutureList represents the result of a background query execution that will
 * return a list of entities.
 * 

* It extends the java.util.concurrent.Future with the ability to cancel the * query, check if it is finished and get the resulting list waiting for the * query to finish (ie. the standard features of java.util.concurrent.Future). *

*

* A simple example: *

* *
{@code
 *  // create a query to find all orders
 * Query query = Ebean.find(Order.class);
 * 
 *  // execute the query in a background thread
 *  // immediately returning the futureList
 * FutureList futureList = query.findFutureList();
 * 
 *  // do something else ... 
 * 
 * if (!futureList.isDone()){
 * 	// we can cancel the query execution. This will cancel
 * // the underlying query if that is supported by the JDBC
 * // driver and database
 * 	futureList.cancel(true);
 * }
 * 
 * 
 * if (!futureList.isCancelled()){
 * 	// wait for the query to finish and return the list
 * 	List list = futureList.get();
 * 	...
 * }
 * 
 * }
*/ public interface FutureList extends Future> { /** * Return the query that is being executed by a background thread. */ Query getQuery(); /** * Same as {@link #get()} but wraps InterruptedException and ExecutionException in the * unchecked PersistenceException. * * @return The query list result * * @throws PersistenceException when a InterruptedException or ExecutionException occurs. */ List getUnchecked(); /** * Same as {@link #get(long, java.util.concurrent.TimeUnit)} but wraps InterruptedException * and ExecutionException in the unchecked PersistenceException. * * @return The query list result * * @throws TimeoutException if the wait timed out * @throws PersistenceException if a InterruptedException or ExecutionException occurs. */ List getUnchecked(long timeout, TimeUnit unit) throws TimeoutException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy