EQL - Add / expose via EbeanServer.createQuery(type, eql) method

This commit is contained in:
Robin Bygrave
2016-07-13 16:40:52 +12:00
parent e58cec8bdd
commit 474c2d5595
10 changed files with 215 additions and 34 deletions
@@ -0,0 +1,71 @@
package com.avaje.ebean;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.ResetBasicData;
import org.junit.Test;
import javax.persistence.PersistenceException;
import static org.assertj.core.api.Assertions.assertThat;
public class EbeanServer_eqlTest extends BaseTestCase {
@Test
public void basic() {
ResetBasicData.reset();
Query<Customer> query = server().createQuery(Customer.class, "order by id limit 10");
query.setMaxRows(100);
query.findList();
assertThat(query.getGeneratedSql()).contains("order by t0.id ");
}
@Test
public void basic_via_Ebean_defaultServer() {
ResetBasicData.reset();
Query<Customer> query = Ebean.createQuery(Customer.class, "order by id limit 10");
query.findList();
assertThat(query.getGeneratedSql()).contains("order by t0.id ");
}
@Test
public void orderBy_override() {
ResetBasicData.reset();
Query<Customer> query = server().createQuery(Customer.class, "order by id");
// use clear() and then effectively override the orderBy clause
query.orderBy().clear().asc("name");
query.findList();
assertThat(query.getGeneratedSql()).contains("order by t0.name");
}
@Test
public void namedParams() {
ResetBasicData.reset();
Query<Customer> query = server().createQuery(Customer.class, "where name startsWith :name order by name");
query.setParameter("name", "Ro");
query.findList();
assertThat(query.getGeneratedSql()).contains("where t0.name like ? ");
}
@Test(expected = PersistenceException.class)
public void unboundNamedParams_expect_PersistenceException() {
Query<Customer> query = server().createQuery(Customer.class, "where name = :name");
query.findUnique();
}
}
@@ -290,6 +290,11 @@ public class TDSpiEbeanServer implements SpiEbeanServer {
return null;
}
@Override
public <T> Query<T> createQuery(Class<T> beanType, String eql) {
return null;
}
@Override
public <T> Query<T> createQuery(Class<T> beanType) {
return null;