initial add of EbeanORM server based on v2.8.1

This commit is contained in:
rbygrave
2012-09-14 00:40:39 +12:00
parent 2b74d0f9d9
commit 96ce4c0ddf
1188 changed files with 135034 additions and 0 deletions
@@ -0,0 +1,24 @@
package com.avaje.tests.rawsql;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.SqlUpdate;
import junit.framework.TestCase;
public class TestInsertSqlLogging extends TestCase {
public void test() {
//Ebean.getServer(null);
String sql = "insert into audit_log (id, description, modified_description) values (?,?,?)";
SqlUpdate sqlUpdate = Ebean.createSqlUpdate(sql);
sqlUpdate.setParameter(1, 10000);
sqlUpdate.setParameter(2, "hello");
sqlUpdate.setParameter(3, "rob");
sqlUpdate.execute();
}
}
@@ -0,0 +1,33 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.Query;
import com.avaje.tests.model.basic.OrderAggregate;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestOrderReportTotal extends TestCase {
public void test() {
ResetBasicData.reset();
Query<OrderAggregate> query = Ebean.createQuery(OrderAggregate.class);
List<OrderAggregate> list = query.findList();
assertNotNull(list);
Query<OrderAggregate> q2 = Ebean.createQuery(OrderAggregate.class);
q2.where().gt("id", 1);
q2.having().gt("totalItems", 1);
List<OrderAggregate> l2 = q2.findList();
assertNotNull(l2);
}
}
@@ -0,0 +1,33 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.Query;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.CustomerAggregate;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestRawSqlCustomerAggregate extends TestCase {
public void test() {
ResetBasicData.reset();
RawSql rawSql =
RawSqlBuilder
.parse("select c.customer_id, count(*) as totalContacts from contact c group by c.customer_id")
.columnMapping("c.customer_id", "customer.id")
.create();
Query<CustomerAggregate> query = Ebean.find(CustomerAggregate.class);
query.setRawSql(rawSql);
query.where().ge("customer.id", 1);
List<CustomerAggregate> list = query.findList();
assertNotNull(list);
}
}
@@ -0,0 +1,37 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.Query;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestRawSqlNamedParams extends TestCase {
public void test() {
ResetBasicData.reset();
RawSql rawSql =
RawSqlBuilder
.parse("select r.id, r.name from o_customer r where r.id > :id and r.name like :name")
.columnMapping("r.id", "id")
.columnMapping("r.name", "name")
.create();
Query<Customer> query = Ebean.find(Customer.class);
query.setRawSql(rawSql);
query.setParameter("name", "R%");
query.setParameter("id", 0);
query.where().lt("id", 1000);
List<Customer> list = query.findList();
assertNotNull(list);
}
}
@@ -0,0 +1,61 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.FetchConfig;
import com.avaje.ebean.Page;
import com.avaje.ebean.PagingList;
import com.avaje.ebean.Query;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestRawSqlOrmQuery extends TestCase {
public void test() {
ResetBasicData.reset();
RawSql rawSql =
RawSqlBuilder
.parse("select r.id, r.name from o_customer r ")
.columnMapping("r.id", "id")
.columnMapping("r.name", "name")
.create();
Query<Customer> query = Ebean.find(Customer.class);
query.setRawSql(rawSql);
query.where().ilike("name", "r%");
query.fetch("contacts", new FetchConfig().query());
query.filterMany("contacts").gt("lastName", "b");
List<Customer> list = query.findList();
assertNotNull(list);
}
public void testPaging() {
ResetBasicData.reset();
RawSql rawSql =
RawSqlBuilder
.parse("select r.id, r.name from o_customer r ")
.columnMapping("r.id", "id")
.columnMapping("r.name", "name")
.create();
Query<Customer> query = Ebean.find(Customer.class);
query.setRawSql(rawSql);
PagingList<Customer> pagingList = query.findPagingList(10);
Page<Customer> page = pagingList.getPage(0);
List<Customer> list = page.getList();
System.out.println(page);
System.out.println(list);
}
}
@@ -0,0 +1,45 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.FetchConfig;
import com.avaje.ebean.Query;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestRawSqlOrmQueryDistinct extends TestCase {
public void test() {
ResetBasicData.reset();
RawSql rawSql0 = RawSqlBuilder.parse(" select distinct r.id, r.name from o_customer r ")
.create();
Query<Customer> query0 = Ebean.find(Customer.class);
query0.setRawSql(rawSql0);
query0.where().ilike("name", "r%");
RawSql rawSql = RawSqlBuilder.parse(" select distinct r.id, r.name from o_customer r ")
.columnMapping("r.id", "id")
.columnMapping("r.name", "name")
.create();
Query<Customer> query = Ebean.find(Customer.class);
query.setRawSql(rawSql);
query.where().ilike("name", "r%");
query.fetch("contacts", new FetchConfig().query());
query.filterMany("contacts").gt("lastName", "b");
List<Customer> list = query.findList();
assertNotNull(list);
}
}
@@ -0,0 +1,80 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.Query;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.Order;
import com.avaje.tests.model.basic.OrderAggregate;
import com.avaje.tests.model.basic.ResetBasicData;
import com.avaje.tests.model.basic.Order.Status;
public class TestRawSqlOrmWrapper extends TestCase {
public void test() {
ResetBasicData.reset();
String sql
= " select order_id, o.status, c.id, c.name, sum(d.order_qty*d.unit_price) as totalAmount"
+ " from o_order o"
+ " join o_customer c on c.id = o.kcustomer_id "
+ " join o_order_detail d on d.order_id = o.id "
+ " group by order_id, o.status, c.id, c.name ";
RawSql rawSql =
RawSqlBuilder
.parse(sql)
.columnMapping("order_id", "order.id")
.columnMapping("o.status", "order.status")
.columnMapping("c.id", "order.customer.id")
.columnMapping("c.name", "order.customer.name")
//.columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount")
.create();
Query<OrderAggregate> query = Ebean.find(OrderAggregate.class);
query.setRawSql(rawSql)
//.fetch("order.details", new FetchConfig().query())
.where().gt("order.id", 0)
.having().gt("totalAmount", 20);
List<OrderAggregate> list = query.findList();
assertNotNull(list);
output(list);
List<OrderAggregate> list2 = Ebean.find(OrderAggregate.class)
.setRawSql(rawSql)
//.fetch("order.details", new FetchConfig().query())
.where().gt("order.id", 2)
.having().gt("totalAmount", 10)
.findList();
output(list2);
}
private void output(List<OrderAggregate> list) {
for (OrderAggregate oa : list) {
Double totalAmount = oa.getTotalAmount();
Order order = oa.getOrder();
Integer id = order.getId();
Status status = order.getStatus();
System.out.println("Order: "+id+" "+status+" total:"+totalAmount);
Customer c = order.getCustomer();
System.out.println(" -> customer: "+c.getId()+" "+c.getName());
// invoke lazy loading as this property
// has not populated originally
//order.getOrderDate();
}
}
}
@@ -0,0 +1,58 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.FetchConfig;
import com.avaje.ebean.Query;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Order;
import com.avaje.tests.model.basic.OrderAggregate;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestRawSqlOrmWrapper2 extends TestCase {
public void test() {
ResetBasicData.reset();
String sql
= " select order_id, 'ignoreMe', sum(d.order_qty*d.unit_price) as totalAmount "
+ " from o_order_detail d"
+ " group by order_id ";
RawSql rawSql =
RawSqlBuilder
.parse(sql)
.columnMapping("order_id", "order.id")
.columnMappingIgnore("'ignoreMe'")
// don't need this when using column alias
//.columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount")
.create();
Query<OrderAggregate> query = Ebean.find(OrderAggregate.class);
query.setRawSql(rawSql)
.fetch("order", "status,orderDate",new FetchConfig().query())
.fetch("order.customer", "name")
.where().gt("order.id", 0)
.having().gt("totalAmount", 20)
.order().desc("totalAmount")
.setMaxRows(10);
List<OrderAggregate> list = query.findList();
assertNotNull(list);
for (OrderAggregate oa : list) {
Double totalAmount = oa.getTotalAmount();
Order order = oa.getOrder();
Integer id = order.getId();
System.out.println("Order: "+id+" total:"+totalAmount);
}
}
}
@@ -0,0 +1,71 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.FetchConfig;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.Order;
import com.avaje.tests.model.basic.OrderAggregate;
import com.avaje.tests.model.basic.ResetBasicData;
import com.avaje.tests.model.basic.Order.Status;
public class TestRawSqlOrmWrapper3 extends TestCase {
public void test() {
ResetBasicData.reset();
String sql
= " select order_id, o.status, c.id, c.name, sum(d.order_qty*d.unit_price) as totalAmount"
+ " from o_order o"
+ " join o_customer c on c.id = o.kcustomer_id "
+ " join o_order_detail d on d.order_id = o.id "
+ " group by order_id, o.status, c.id, c.name ";
RawSql rawSql =
RawSqlBuilder
.parse(sql)
.columnMapping("order_id", "order.id")
.columnMapping("o.status", "order.status")
.columnMapping("c.id", "order.customer.id")
.columnMapping("c.name", "order.customer.name")
//.columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount")
.create();
List<OrderAggregate> list2 = Ebean.find(OrderAggregate.class)
.setRawSql(rawSql)
.fetch("order", new FetchConfig().query())
.fetch("order.details", new FetchConfig().query())
.where().gt("order.id", 2)
.having().gt("totalAmount", 10)
.filterMany("order.details").gt("unitPrice", 2d)
.findList();
output(list2);
}
private void output(List<OrderAggregate> list) {
for (OrderAggregate oa : list) {
Double totalAmount = oa.getTotalAmount();
Order order = oa.getOrder();
Integer id = order.getId();
Status status = order.getStatus();
System.out.println("Order: "+id+" "+status+" total:"+totalAmount);
Customer c = order.getCustomer();
System.out.println(" -> customer: "+c.getId()+" "+c.getName());
// invoke lazy loading as this property
// has not populated originally
//order.getOrderDate();
}
}
}
@@ -0,0 +1,59 @@
package com.avaje.tests.rawsql;
import java.util.List;
import junit.framework.TestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.Query;
import com.avaje.ebean.RawSql;
import com.avaje.ebean.RawSqlBuilder;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.ResetBasicData;
public class TestRawSqlPositionedParams extends TestCase {
public void test() {
ResetBasicData.reset();
RawSql rawSql =
RawSqlBuilder
.parse("select r.id, r.name from o_customer r where r.id >= ? and r.name like ?")
.columnMapping("r.id", "id")
.columnMapping("r.name", "name")
.create();
Query<Customer> query = Ebean.find(Customer.class);
query.setRawSql(rawSql);
query.setParameter(1, 1);
query.setParameter(2, "R%");
query.where().lt("id", 2001);
List<Customer> list = query.findList();
assertNotNull(list);
}
public void test_unparsed() {
ResetBasicData.reset();
RawSql rawSql =
RawSqlBuilder
.unparsed("select r.id, r.name from o_customer r where r.id >= ? and r.name like ?")
.columnMapping("r.id", "id")
.columnMapping("r.name", "name")
.create();
Query<Customer> query = Ebean.find(Customer.class);
query.setRawSql(rawSql);
query.setParameter(1, 1);
query.setParameter(2, "R%");
List<Customer> list = query.findList();
assertNotNull(list);
}
}
@@ -0,0 +1,23 @@
package com.avaje.tests.rawsql.named;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.FetchConfig;
import com.avaje.ebean.Query;
import com.avaje.tests.model.basic.OrderAggregate;
import com.avaje.tests.model.basic.ResetBasicData;
import junit.framework.TestCase;
public class TestRawSqlNamedQuery extends TestCase {
public void test(){
ResetBasicData.reset();
Query<OrderAggregate> q = Ebean.createNamedQuery(OrderAggregate.class, "total.amount");
q.fetch("order", new FetchConfig().query());
q.findList();
}
}