diff --git a/src/test/java/io/ebean/event/BeanPostLoadTest.java b/src/test/java/io/ebean/event/BeanPostLoadTest.java index cff041423..6ce0039af 100644 --- a/src/test/java/io/ebean/event/BeanPostLoadTest.java +++ b/src/test/java/io/ebean/event/BeanPostLoadTest.java @@ -33,7 +33,7 @@ public class BeanPostLoadTest extends BaseTestCase { EBasicVer found = ebeanServer.find(EBasicVer.class) .select("name, other") .setId(bean.getId()) - .findUnique(); + .findOne(); assertThat(postLoad.methodsCalled).hasSize(1); assertThat(postLoad.methodsCalled).containsExactly("postLoad"); diff --git a/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java b/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java index 6df8b1b6b..c3c51c4fe 100644 --- a/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java +++ b/src/test/java/io/ebeaninternal/api/TDSpiEbeanServer.java @@ -1,31 +1,6 @@ package io.ebeaninternal.api; -import io.ebean.AutoTune; -import io.ebean.BackgroundExecutor; -import io.ebean.BeanState; -import io.ebean.CallableSql; -import io.ebean.DocumentStore; -import io.ebean.ExpressionFactory; -import io.ebean.Filter; -import io.ebean.FutureIds; -import io.ebean.FutureList; -import io.ebean.FutureRowCount; -import io.ebean.PagedList; -import io.ebean.PersistenceContextScope; -import io.ebean.Query; -import io.ebean.QueryIterator; -import io.ebean.SqlQuery; -import io.ebean.SqlRow; -import io.ebean.SqlUpdate; -import io.ebean.Transaction; -import io.ebean.TransactionCallback; -import io.ebean.TxCallable; -import io.ebean.TxRunnable; -import io.ebean.TxScope; -import io.ebean.Update; -import io.ebean.UpdateQuery; -import io.ebean.ValuePair; -import io.ebean.Version; +import io.ebean.*; import io.ebean.bean.BeanCollection; import io.ebean.bean.CallStack; import io.ebean.bean.EntityBeanIntercept; @@ -43,7 +18,6 @@ import io.ebeaninternal.server.core.timezone.DataTimeZone; import io.ebeaninternal.server.deploy.BeanDescriptor; import io.ebeaninternal.server.query.CQuery; import io.ebeaninternal.server.transaction.RemoteTransactionEvent; -import io.ebean.TxIsolation; import javax.persistence.OptimisticLockException; import javax.persistence.PersistenceException; @@ -51,6 +25,7 @@ import java.lang.reflect.Type; 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; @@ -565,6 +540,16 @@ public class TDSpiEbeanServer implements SpiEbeanServer { return null; } + @Override + public T findOne(Query query, Transaction transaction) { + return null; + } + + @Override + public Optional findOneOrEmpty(Query query, Transaction transaction) { + return null; + } + @Override public T findUnique(Query query, Transaction transaction) { return null; diff --git a/src/test/java/io/ebeaninternal/server/text/json/WriteJsonDirtyTest.java b/src/test/java/io/ebeaninternal/server/text/json/WriteJsonDirtyTest.java index 90804cc71..6d7e6e597 100644 --- a/src/test/java/io/ebeaninternal/server/text/json/WriteJsonDirtyTest.java +++ b/src/test/java/io/ebeaninternal/server/text/json/WriteJsonDirtyTest.java @@ -27,7 +27,7 @@ public class WriteJsonDirtyTest { Customer customer = Ebean.find(Customer.class).setId(customers.get(0).getId()) .setUseCache(false) - .findUnique(); + .findOne(); SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); BeanDescriptor descriptor = server.getBeanDescriptor(Customer.class); diff --git a/src/test/java/io/ebeaninternal/server/transaction/JdbcTransactionTest.java b/src/test/java/io/ebeaninternal/server/transaction/JdbcTransactionTest.java index 313cfc0a1..f0dcbd69d 100644 --- a/src/test/java/io/ebeaninternal/server/transaction/JdbcTransactionTest.java +++ b/src/test/java/io/ebeaninternal/server/transaction/JdbcTransactionTest.java @@ -54,7 +54,7 @@ public class JdbcTransactionTest { contactNatKeyCache.getStatistics(true); Customer.find.byId(19898989); - Ebean.find(Contact.class).where().eq("email", "junk@foo.com").findUnique(); + Ebean.find(Contact.class).where().eq("email", "junk@foo.com").findOne(); assertThat(customerBeanCache.getStatistics(true).getMissCount()).isEqualTo(1); assertThat(contactNatKeyCache.getStatistics(true).getMissCount()).isEqualTo(1); @@ -64,7 +64,7 @@ public class JdbcTransactionTest { // these don't hit L2 cache due to the save of b1 Customer.find.byId(29898989); - Ebean.find(Contact.class).where().eq("email", "junk2@foo.com").findUnique(); + Ebean.find(Contact.class).where().eq("email", "junk2@foo.com").findOne(); assertThat(customerBeanCache.getStatistics(true).getMissCount()).isEqualTo(0); assertThat(contactNatKeyCache.getStatistics(true).getMissCount()).isEqualTo(0); diff --git a/src/test/java/org/tests/autofetch/AutofetchEmbeddedTest.java b/src/test/java/org/tests/autofetch/AutofetchEmbeddedTest.java index d0ac10f07..5ca3e5fd9 100644 --- a/src/test/java/org/tests/autofetch/AutofetchEmbeddedTest.java +++ b/src/test/java/org/tests/autofetch/AutofetchEmbeddedTest.java @@ -21,7 +21,7 @@ public class AutofetchEmbeddedTest extends BaseTestCase { testBean.getEmbeddable().setDescription("test description"); Ebean.save(testBean); - EMain partialBean = Ebean.find(EMain.class).select("version").setId(testBean.getId()).findUnique(); + EMain partialBean = Ebean.find(EMain.class).select("version").setId(testBean.getId()).findOne(); logger.info(" -- invoke lazy loading of embedded bean"); Eembeddable embeddable = partialBean.getEmbeddable(); diff --git a/src/test/java/org/tests/autofetch/TunedQueryInfoTest.java b/src/test/java/org/tests/autofetch/TunedQueryInfoTest.java index fe09aa3f4..ab22bc4f0 100644 --- a/src/test/java/org/tests/autofetch/TunedQueryInfoTest.java +++ b/src/test/java/org/tests/autofetch/TunedQueryInfoTest.java @@ -47,7 +47,7 @@ public class TunedQueryInfoTest extends BaseTestCase { tunedInfo.tuneQuery((SpiQuery) query); - Order order = query.findUnique(); + Order order = query.findOne(); EntityBean eb = (EntityBean) order; EntityBeanIntercept ebi = eb._ebean_getIntercept(); @@ -76,7 +76,7 @@ public class TunedQueryInfoTest extends BaseTestCase { LoggedSqlCollector.start(); - Order order = query.findUnique(); + Order order = query.findOne(); EntityBean eb = (EntityBean) order; EntityBeanIntercept ebi = eb._ebean_getIntercept(); @@ -119,7 +119,7 @@ public class TunedQueryInfoTest extends BaseTestCase { LoggedSqlCollector.start(); - Order order = query.findUnique(); + Order order = query.findOne(); EntityBean eb = (EntityBean) order; EntityBeanIntercept ebi = eb._ebean_getIntercept(); @@ -154,7 +154,7 @@ public class TunedQueryInfoTest extends BaseTestCase { LoggedSqlCollector.start(); - Order order = query.findUnique(); + Order order = query.findOne(); EntityBean eb = (EntityBean) order; EntityBeanIntercept ebi = eb._ebean_getIntercept(); diff --git a/src/test/java/org/tests/autofetch/TunedQueryWithNullFetchedBeanTest.java b/src/test/java/org/tests/autofetch/TunedQueryWithNullFetchedBeanTest.java index 4a8d88ca9..b7bb545dc 100644 --- a/src/test/java/org/tests/autofetch/TunedQueryWithNullFetchedBeanTest.java +++ b/src/test/java/org/tests/autofetch/TunedQueryWithNullFetchedBeanTest.java @@ -35,7 +35,7 @@ public class TunedQueryWithNullFetchedBeanTest extends BaseTestCase { LoggedSqlCollector.start(); - Customer customer = query.findUnique(); + Customer customer = query.findOne(); EntityBean eb = (EntityBean) customer; EntityBeanIntercept ebi = eb._ebean_getIntercept(); diff --git a/src/test/java/org/tests/basic/TestDeleteImportedPartial.java b/src/test/java/org/tests/basic/TestDeleteImportedPartial.java index d77c3624d..5ce7c6904 100644 --- a/src/test/java/org/tests/basic/TestDeleteImportedPartial.java +++ b/src/test/java/org/tests/basic/TestDeleteImportedPartial.java @@ -19,7 +19,7 @@ public class TestDeleteImportedPartial extends BaseTestCase { Integer contentId = persistentFile.getFileContent().getId(); PFile partialPfile = Ebean.find(PFile.class).select("id").where().idEq(persistentFile.getId()) - .findUnique(); + .findOne(); // should delete file and fileContent Ebean.delete(partialPfile); diff --git a/src/test/java/org/tests/basic/TestDeletePartialNoVersion.java b/src/test/java/org/tests/basic/TestDeletePartialNoVersion.java index f04a872e8..5a4e3468b 100644 --- a/src/test/java/org/tests/basic/TestDeletePartialNoVersion.java +++ b/src/test/java/org/tests/basic/TestDeletePartialNoVersion.java @@ -20,7 +20,7 @@ public class TestDeletePartialNoVersion extends BaseTestCase { TMapSuperEntity e2 = Ebean.find(TMapSuperEntity.class) .where().idEq(e.getId()) .select("id, name") - .findUnique(); + .findOne(); Assert.assertNotNull(e2); @@ -42,7 +42,7 @@ public class TestDeletePartialNoVersion extends BaseTestCase { TMapSuperEntity e2 = Ebean.find(TMapSuperEntity.class) .where().idEq(e.getId()) .select("id, name, version") - .findUnique(); + .findOne(); Assert.assertNotNull(e2); diff --git a/src/test/java/org/tests/basic/TestLazyLoadEmptyOneToMany.java b/src/test/java/org/tests/basic/TestLazyLoadEmptyOneToMany.java index edadea7ba..24f075e4d 100644 --- a/src/test/java/org/tests/basic/TestLazyLoadEmptyOneToMany.java +++ b/src/test/java/org/tests/basic/TestLazyLoadEmptyOneToMany.java @@ -27,7 +27,7 @@ public class TestLazyLoadEmptyOneToMany extends BaseTestCase { .select("id") .fetch("contacts", "id") .where().idEq(c.getId()) - .findUnique(); + .findOne(); List contacts = c1.getContacts(); int sz = contacts.size(); diff --git a/src/test/java/org/tests/basic/TestLazyLoadInCache.java b/src/test/java/org/tests/basic/TestLazyLoadInCache.java index b837a7d58..7fe521d19 100644 --- a/src/test/java/org/tests/basic/TestLazyLoadInCache.java +++ b/src/test/java/org/tests/basic/TestLazyLoadInCache.java @@ -37,7 +37,7 @@ public class TestLazyLoadInCache extends BaseTestCase { Customer cust1B = Ebean.find(Customer.class) .setReadOnly(true) .setId(id) - .findUnique(); + .findOne(); assertTrue(cust1 != cust1B); diff --git a/src/test/java/org/tests/basic/TestMappedSuper.java b/src/test/java/org/tests/basic/TestMappedSuper.java index 904523378..ae7340816 100644 --- a/src/test/java/org/tests/basic/TestMappedSuper.java +++ b/src/test/java/org/tests/basic/TestMappedSuper.java @@ -20,7 +20,7 @@ public class TestMappedSuper extends BaseTestCase { TMapSuperEntity e2 = Ebean.find(TMapSuperEntity.class) .where().idEq(e.getId()) .select("id, name, myint, someObject, bananan") - .findUnique(); + .findOne(); Assert.assertNotNull(e2); diff --git a/src/test/java/org/tests/basic/TestPersistenceContext.java b/src/test/java/org/tests/basic/TestPersistenceContext.java index a4d221d12..e8e233a3d 100644 --- a/src/test/java/org/tests/basic/TestPersistenceContext.java +++ b/src/test/java/org/tests/basic/TestPersistenceContext.java @@ -63,7 +63,7 @@ public class TestPersistenceContext extends BaseTestCase { Customer customer = Ebean.find(Customer.class) .setUseCache(false) .setId(id) - .findUnique(); + .findOne(); System.gc(); Order order2 = Ebean.find(Order.class, orderId); diff --git a/src/test/java/org/tests/basic/TestQueryForUpdate.java b/src/test/java/org/tests/basic/TestQueryForUpdate.java index c2902c8a6..d179f5bf3 100644 --- a/src/test/java/org/tests/basic/TestQueryForUpdate.java +++ b/src/test/java/org/tests/basic/TestQueryForUpdate.java @@ -63,7 +63,7 @@ public class TestQueryForUpdate extends BaseTestCase { .where().idEq(first.getId()) .forUpdateNoWait(); - server.findUnique(query2, txn2); + server.findOne(query2, txn2); assertTrue(false); // never get here } catch (AcquireLockException e) { logger.info("... got AcquireLockException " + e); diff --git a/src/test/java/org/tests/basic/TestQueryWithCache.java b/src/test/java/org/tests/basic/TestQueryWithCache.java index 3c4635683..5c3e6c705 100644 --- a/src/test/java/org/tests/basic/TestQueryWithCache.java +++ b/src/test/java/org/tests/basic/TestQueryWithCache.java @@ -49,7 +49,7 @@ public class TestQueryWithCache extends BaseTestCase { Country nz3 = Ebean.find(Country.class, "NZ"); Country nz4 = Ebean.find(Country.class).setId("NZ").setAutoTune(false).setUseCache(false) - .findUnique(); + .findOne(); assertTrue(nz2 == nz2b); assertTrue(nz2 == nz3); @@ -65,7 +65,7 @@ public class TestQueryWithCache extends BaseTestCase { Ebean.find(Country.class, "NZ"); Query query = Ebean.find(Country.class).setId("NZ").setUseCache(false); - query.findUnique(); + query.findOne(); assertThat(query.getGeneratedSql()).isNotNull(); } diff --git a/src/test/java/org/tests/basic/TestReadOnlyPropagation.java b/src/test/java/org/tests/basic/TestReadOnlyPropagation.java index ba230e68c..97ffde7fe 100644 --- a/src/test/java/org/tests/basic/TestReadOnlyPropagation.java +++ b/src/test/java/org/tests/basic/TestReadOnlyPropagation.java @@ -27,7 +27,7 @@ public class TestReadOnlyPropagation extends BaseTestCase { .setUseCache(false) .setReadOnly(true) .setId(1) - .findUnique(); + .findOne(); Assert.assertTrue(Ebean.getBeanState(order).isReadOnly()); diff --git a/src/test/java/org/tests/basic/TestSharedInstancePropagation.java b/src/test/java/org/tests/basic/TestSharedInstancePropagation.java index d526cbd99..3f85c0486 100644 --- a/src/test/java/org/tests/basic/TestSharedInstancePropagation.java +++ b/src/test/java/org/tests/basic/TestSharedInstancePropagation.java @@ -30,7 +30,7 @@ public class TestSharedInstancePropagation extends BaseTestCase { .setAutoTune(false) .setReadOnly(true) .setId(1) - .findUnique(); + .findOne(); assertNotNull(order); diff --git a/src/test/java/org/tests/basic/TestTransient.java b/src/test/java/org/tests/basic/TestTransient.java index 95412b01e..70e560a1c 100644 --- a/src/test/java/org/tests/basic/TestTransient.java +++ b/src/test/java/org/tests/basic/TestTransient.java @@ -18,7 +18,7 @@ public class TestTransient extends BaseTestCase { Ebean.save(cnew); Integer custId = cnew.getId(); - Customer c = Ebean.find(Customer.class).setAutoTune(false).setId(custId).findUnique(); + Customer c = Ebean.find(Customer.class).setAutoTune(false).setId(custId).findOne(); Assert.assertNotNull(c); diff --git a/src/test/java/org/tests/basic/TestWhereAnnotation.java b/src/test/java/org/tests/basic/TestWhereAnnotation.java index e9f93c478..207eb5a1c 100644 --- a/src/test/java/org/tests/basic/TestWhereAnnotation.java +++ b/src/test/java/org/tests/basic/TestWhereAnnotation.java @@ -27,7 +27,7 @@ public class TestWhereAnnotation extends BaseTestCase { Query q1 = Ebean.find(Customer.class).setUseCache(false).fetch("orders").where() .idEq(1).query(); - q1.findUnique(); + q1.findOne(); String s1 = q1.getGeneratedSql(); Assert.assertTrue(s1.contains("t1.order_date is not null")); } diff --git a/src/test/java/org/tests/query/TestFindOneOrEmpty.java b/src/test/java/org/tests/query/TestFindOneOrEmpty.java new file mode 100644 index 000000000..3c7ac3aa0 --- /dev/null +++ b/src/test/java/org/tests/query/TestFindOneOrEmpty.java @@ -0,0 +1,42 @@ +package org.tests.query; + +import io.ebean.BaseTestCase; +import io.ebean.Ebean; +import org.junit.Test; +import org.tests.model.basic.Customer; +import org.tests.model.basic.ResetBasicData; + +import java.util.Optional; + +import static org.assertj.core.api.StrictAssertions.assertThat; + +public class TestFindOneOrEmpty extends BaseTestCase { + + @Test + public void empty() { + + Optional willBeEmpty = Ebean.find(Customer.class) + .setId(Integer.MAX_VALUE) + .findOneOrEmpty(); + + assertThat(willBeEmpty).isEmpty(); + } + + @Test + public void notEmpty() { + + ResetBasicData.reset(); + + Optional customer = Ebean.find(Customer.class) + .setId(1) + .findOneOrEmpty(); + + assertThat(customer.isPresent()).isTrue(); + + customer.ifPresent(customer1 -> { + String name = customer1.getName(); + assertThat(name).isNotEmpty(); + }); + + } +}