#1753 - Tidy for Issue with using the Formula-Properties

This commit is contained in:
rob bygrave
2019-07-14 16:03:07 +12:00
parent 1ffe359573
commit 496672b394
4 changed files with 38 additions and 18 deletions
@@ -67,6 +67,25 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("join (select order_id, count(*) as total_items,");
assertThat(loggedSql.get(0)).contains("elect count(*) from ( select t0.id, z_bt0.total_items from o_order t0 join (select order_id,");
}
@Test
public void test_OrderFindCount_multiFormula() {
LoggedSqlCollector.start();
int orders = Ebean.find(Order.class)
.where()
.eq("totalItems", 3)
.gt("totalAmount", 10)
.findCount();
assertThat(orders).isEqualTo(2);
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("select count(*) from ( select t0.id, z_bt0.total_items, z_bt0.total_amount from o_order t0 join (select order_id,");
}
@Test
@@ -83,6 +102,7 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("join (select order_id, count(*) as total_items,");
assertThat(loggedSql.get(0)).contains("select t0.order_date from o_order t0");
}
@Test
@@ -102,6 +122,7 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("join (select order_id, count(*) as total_items,");
assertThat(loggedSql.get(0)).contains("select t0.id, z_bt0.total_items from o_order t0 join (select order_id");
}
@Test
@@ -112,10 +133,10 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
List<ParentPerson> orderIds = Ebean.find(ParentPerson.class)
.where().eq("totalAge", 3)
.findIds();
// TODO: There are no beans in database, so for now only the query must run.
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("where coalesce(f2.child_age, 0) = ?; --bind(3)");
}
@Test
@@ -128,10 +149,10 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
//.where().eq("totalAge", 3)
.where().eq("familyName", "foo")
.findList();
// TODO: There are no beans in database, so for now only the query must run.
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("select t0.identifier from parent_person t0 where t0.family_name = ?");
}
@Test
@@ -142,10 +163,11 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
Ebean.find(ParentPerson.class)
.where().eq("totalAge", 3)
.findCount();
// TODO: There are no beans in database, so for now only the query must run.
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("where coalesce(f2.child_age, 0) = ?)");
assertThat(loggedSql.get(0)).contains("select count(*) from ( select t0.identifier, coalesce(f2.child_age, 0) from parent_person t0");
}
@Test
@@ -154,13 +176,14 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
LoggedSqlCollector.start();
Ebean.find(ParentPerson.class)
.select("address") // .select("address, totalAge") would work
.select("address")
.where().eq("totalAge", 3)
.findSingleAttributeList();
// TODO: There are no beans in database, so for now only the query must run.
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("select t0.address from parent_person t0 left join (select i2.parent_identifier");
assertThat(loggedSql.get(0)).contains("where coalesce(f2.child_age, 0) = ?; --bind(3)");
}
@Test
@@ -173,10 +196,10 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
.setMaxRows(1)
.orderById(true)
.findOne();
// TODO: There are no beans in database, so for now only the query must run.
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("where coalesce(f2.child_age, 0) = ? order by t0.identifier");
}
@Test
@@ -187,10 +210,11 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
Ebean.find(ChildPerson.class)
.where().eq("parent.totalAge", 3)
.findIds();
// TODO: There are no beans in database, so for now only the query must run.
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("select t0.identifier from child_person t0 left join (select i2.parent_identifier");
assertThat(loggedSql.get(0)).contains("where coalesce(f2.child_age, 0) = ?");
}
@Test
@@ -201,9 +225,10 @@ public class TestQueryJoinOnFormula extends BaseTestCase {
Ebean.find(ChildPerson.class)
.where().eq("parent.totalAge", 3)
.findCount();
// TODO: There are no beans in database, so for now only the query must run.
List<String> loggedSql = LoggedSqlCollector.stop();
assertEquals(1, loggedSql.size());
assertThat(loggedSql.get(0)).contains("select count(*) from ( select t0.identifier");
assertThat(loggedSql.get(0)).contains("where coalesce(f2.child_age, 0) = ?");
}
}