mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
64 lines
1.6 KiB
Java
64 lines
1.6 KiB
Java
package org.tests.query;
|
|
|
|
import io.ebean.BaseTestCase;
|
|
import io.ebean.Ebean;
|
|
import io.ebean.Query;
|
|
import io.ebean.RawSql;
|
|
import io.ebean.RawSqlBuilder;
|
|
import org.tests.model.basic.MyAdHoc;
|
|
import org.tests.model.basic.ResetBasicData;
|
|
import org.junit.Test;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static org.junit.Assert.assertNotNull;
|
|
|
|
public class TestMyAdHocSqlSelect extends BaseTestCase {
|
|
|
|
@Test
|
|
public void test() {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
String sql = "select order_id, count(*) as detailCount from o_order_detail group by order_id";
|
|
|
|
RawSql rawSql = RawSqlBuilder
|
|
.parse(sql)
|
|
.columnMapping("order_id", "order.id")
|
|
.create();
|
|
|
|
Query<MyAdHoc> query = Ebean.find(MyAdHoc.class)
|
|
.setRawSql(rawSql)
|
|
.where().gt("order_id", 0)
|
|
.having().gt("detailCount", 0)
|
|
.query();
|
|
|
|
assertNotNull(query.findList());
|
|
assertThat(query.getGeneratedSql()).contains(" group by order_id having count(*) > ?");
|
|
}
|
|
|
|
@Test
|
|
public void test_when_explicitColumnMapping() {
|
|
|
|
ResetBasicData.reset();
|
|
|
|
String sql = "select order_id, count(*) as detail_count from o_order_detail group by order_id";
|
|
|
|
RawSql rawSql = RawSqlBuilder
|
|
.parse(sql)
|
|
.columnMapping("order_id", "order.id")
|
|
.columnMapping("detail_count", "detailCount")
|
|
.create();
|
|
|
|
Query<MyAdHoc> query = Ebean.find(MyAdHoc.class)
|
|
.setRawSql(rawSql)
|
|
.where().gt("order_id", 0)
|
|
.having().gt("detailCount", 0)
|
|
.query();
|
|
|
|
assertNotNull(query.findList());
|
|
assertThat(query.getGeneratedSql()).contains(" group by order_id having count(*) > ?");
|
|
}
|
|
|
|
|
|
}
|