#2075 - Refactor external mapping (i.e. named queries from ebean.xml etc) - extract api and separate module

This commit is contained in:
rob bygrave committed 2020-10-12 14:54:25 +13:00
1 parent f57db28f1c
commit 49b1bd54c3
52 files changed
+817 -259

No files matched your search

@@ -93,61 +93,4 @@ public class TestOrderTotalAmountReportBean extends BaseTestCase {
assertSql(query).contains("count(*) as totalItems, sum(order_qty*unit_price) as totalAmount");
}
@Test
public void testDefaultNamedRawSql() {
Query<OrderAggregate> query = Ebean.find(OrderAggregate.class);
List<OrderAggregate> list = query.findList();
assertSql(query).contains("count(*) as total_items, sum(order_qty*unit_price) as total_amount");
assertNotNull(list);
}
@Test
public void testNamedRawSql() {
ResetBasicData.reset();
Query<OrderAggregate> query = Ebean.getDefaultServer().createNamedQuery(OrderAggregate.class, "withMax");
List<OrderAggregate> list = query.findList();
assertSql(query).contains("count(*) as total_items, sum(order_qty*unit_price) as total_amount, max(order_qty*unit_price) as maxAmount from o_order_detail");
assertNotNull(list);
}
@Test
public void testNamedRawSql_with_extraPredicates() {
ResetBasicData.reset();
Query<OrderAggregate> query = Ebean.getDefaultServer().createNamedQuery(OrderAggregate.class, "withMax");
List<OrderAggregate> list = query
.where().gt("order.id", 1)
.having().gt("totalItems", 1)
.order().desc("totalAmount")
.findList();
assertSql(query).contains("count(*) as total_items, sum(order_qty*unit_price) as total_amount, max(order_qty*unit_price) as maxAmount from o_order_detail");
assertSql(query).contains("from o_order_detail where order_id > ? group by order_id having count(*) > ? order by sum(order_qty*unit_price) desc");
assertNotNull(list);
}
@Test
public void testNamedRawSql_with_param() {
ResetBasicData.reset();
Query<OrderAggregate> query = Ebean.getDefaultServer().createNamedQuery(OrderAggregate.class, "withParam");
List<OrderAggregate> list = query
.setParameter("minId", 2)
.where().isNotNull("order.id")
.having().lt("totalAmount", 100)
.order().desc("totalAmount")
.setMaxRows(10)
.findList();
assertSql(query).contains("count(*) as totalItems, sum(order_qty*unit_price) as totalAmount, max(order_qty*unit_price) as maxAmount from o_order_detail");
assertSql(query).contains("from o_order_detail where id > ? and order_id is not null group by order_id having sum(order_qty*unit_price) < ? order by sum(order_qty*unit_price) desc");
assertNotNull(list);
}
}
@@ -24,71 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat;
public class TestRawSqlOrmQuery extends BaseTestCase {
@IgnorePlatform(Platform.ORACLE)
@Test
public void testNamed() {
ResetBasicData.reset();
Query<Order> query = Ebean.createNamedQuery(Order.class, "myRawTest");
query.setParameter("orderStatus", Order.Status.NEW);
query.setMaxRows(10);
List<Order> list = query.findList();
for (Order order : list) {
order.getCretime();
}
String sql = query.getGeneratedSql();
if (isSqlServer()) {
assertThat(sql).contains("select top 10 o.id,");
} else {
assertThat(sql).contains("select o.id,");
assertThat(sql).contains("limit 10");
}
assertThat(sql).contains("o.id, o.status, o.ship_date, c.id, c.name, a.id, a.line_1, a.line_2, a.city from o_order o");
assertThat(sql).contains("join o_customer c on o.kcustomer_id = c.id ");
assertThat(sql).contains("where o.status = ? order by c.name, c.id");
}
@IgnorePlatform(Platform.ORACLE)
@Test
public void testNamed_fromCustomXmlLocations() {
ResetBasicData.reset();
Query<Order> query = Ebean.createNamedQuery(Order.class, "myRawTest2");
query.setParameter("orderStatus", Order.Status.NEW);
query.setMaxRows(10);
List<Order> list = query.findList();
for (Order order : list) {
order.getCretime();
}
String sql = query.getGeneratedSql();
if (isSqlServer()) {
assertThat(sql).contains("select top 10 o.id,");
} else {
assertThat(sql).contains("select o.id,");
assertThat(sql).contains("limit 10");
}
assertThat(sql).contains("o.id, o.status, o.ship_date, c.id, c.name, a.id, a.line_1, a.line_2, a.city from o_order o");
assertThat(sql).contains("join o_customer c on o.kcustomer_id = c.id ");
assertThat(sql).contains("where o.status = ? order by c.name, c.id");
}
@IgnorePlatform(Platform.ORACLE)
@Test
public void testNamed_fromCustomXmlLocations_withComments() {
ResetBasicData.reset();
Query<Order> query = Ebean.createNamedQuery(Order.class, "myRawTest3");
query.setMaxRows(10);
List<Order> list = query.findList();
assertThat(list).isNotEmpty();
}
@Test
public void test() {