#996 Add findOne() and findOneOrEmpty() - SqlQuery

This commit is contained in:
rob bygrave committed 2017-05-19 23:48:41 +12:00
1 parent db298a349e
commit 0c1a9786a3
9 files changed
+55 -10

No files matched your search

+10
View File
@@ -1177,6 +1177,16 @@ public interface EbeanServer {
* @see SqlQuery#findUnique()
*/
@Nullable
SqlRow findOne(SqlQuery query, Transaction transaction);
/**
* Synonym for findOne().
* <p>
* This proceeded findOne which was introduced to better match spring data.
* This will be deprecated at some future point.
* </p>
*/
@Nullable
SqlRow findUnique(SqlQuery query, Transaction transaction);
/**
+11
View File
@@ -2,6 +2,7 @@ package io.ebean;
import java.io.Serializable;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Predicate;
@@ -70,6 +71,16 @@ public interface SqlQuery extends Serializable {
* PersistenceException.
* </p>
*/
SqlRow findOne();
/**
* Execute the query returning an optional row.
*/
Optional<SqlRow> findOneOrEmpty();
/**
* Synonym for findOne().
*/
SqlRow findUnique();
/**
@@ -1503,6 +1503,11 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
@Override
public SqlRow findUnique(SqlQuery query, Transaction t) {
return findOne(query, t);
}
@Override
public SqlRow findOne(SqlQuery query, Transaction t) {
// no findId() method for SqlQuery...
// a query that is expected to return either 0 or 1 rows
@@ -6,6 +6,7 @@ import io.ebeaninternal.api.BindParams;
import io.ebeaninternal.api.SpiSqlQuery;
import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Predicate;
@@ -61,9 +62,19 @@ public class DefaultRelationalQuery implements SpiSqlQuery {
return server.findList(this, null);
}
@Override
public SqlRow findOne() {
return server.findOne(this, null);
}
@Override
public Optional<SqlRow> findOneOrEmpty() {
return Optional.ofNullable(findOne());
}
@Override
public SqlRow findUnique() {
return server.findUnique(this, null);
return findOne();
}
@Override