#996 Add findOne() and findOneOrEmpty()

This commit is contained in:
rob bygrave
2017-05-19 23:38:24 +12:00
parent c7cbe4ead8
commit c1bed9f578
7 changed files with 95 additions and 3 deletions
@@ -104,6 +104,7 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
@@ -1175,6 +1176,16 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
@Override
public <T> T findUnique(Query<T> query, Transaction transaction) {
return findOne(query, transaction);
}
@Override
public <T> Optional<T> findOneOrEmpty(Query<T> query, Transaction transaction) {
return Optional.ofNullable(findOne(query, transaction));
}
@Override
public <T> T findOne(Query<T> query, Transaction transaction) {
SpiQuery<T> spiQuery = (SpiQuery<T>) query;
spiQuery.checkIdEqualTo();
@@ -34,6 +34,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
@@ -409,6 +410,16 @@ public class DefaultExpressionList<T> implements SpiExpressionList<T> {
return query.findSingleAttributeList();
}
@Override
public T findOne() {
return query.findOne();
}
@Override
public Optional<T> findOneOrEmpty() {
return query.findOneOrEmpty();
}
@Override
public T findUnique() {
return query.findUnique();
@@ -31,6 +31,7 @@ import java.sql.Timestamp;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
@@ -414,6 +415,16 @@ class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expression
return exprList.findSet();
}
@Override
public T findOne() {
return exprList.findOne();
}
@Override
public Optional<T> findOneOrEmpty() {
return exprList.findOneOrEmpty();
}
@Override
public T findUnique() {
return exprList.findUnique();
@@ -50,6 +50,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
@@ -1255,10 +1256,20 @@ public class DefaultOrmQuery<T> implements SpiQuery<T> {
}
@Override
public T findUnique() {
public T findOne() {
return server.findUnique(this, null);
}
@Override
public Optional<T> findOneOrEmpty() {
return server.findOneOrEmpty(this, null);
}
@Override
public T findUnique() {
return findOne();
}
@Override
public FutureIds<T> findFutureIds() {
return server.findFutureIds(this, null);