Merge remote-tracking branch 'ebean/master' into feature/platform-dependent-annotations

# Conflicts:
#	pom.xml
This commit is contained in:
Roland Praml
2016-11-04 09:42:37 +01:00
39 changed files with 419 additions and 916 deletions
@@ -14,8 +14,7 @@ public class ScalarTypeArrayListTest {
DataReader mock = Mockito.mock(DataReader.class);
Mockito.when(mock.getArray()).thenReturn(null);
ScalarTypeArrayList scalarType = ScalarTypeArrayList.typeFor(Long.class);
ScalarType<?> scalarType = ScalarTypeArrayList.factory().typeFor(Long.class);
scalarType.read(mock);
}
}
@@ -27,6 +27,9 @@ public class EArrayBean {
@DbArray
List<Long> otherIds = new ArrayList<Long>();
@DbArray
List<Double> doubs;
@Version
Long version;
@@ -70,6 +73,14 @@ public class EArrayBean {
this.otherIds = otherIds;
}
public List<Double> getDoubs() {
return doubs;
}
public void setDoubs(List<Double> doubs) {
this.doubs = doubs;
}
public Long getVersion() {
return version;
}
@@ -28,11 +28,17 @@ public class TestDbArray_basic extends BaseTestCase {
phNumbers.add("4321");
phNumbers.add("9823");
List<Double> doubles = new ArrayList<Double>();
doubles.add(1.3);
doubles.add(2.4);
bean.getUids().add(UUID.randomUUID());
bean.getUids().add(UUID.randomUUID());
bean.getOtherIds().add(95L);
bean.getOtherIds().add(96L);
bean.getOtherIds().add(97L);
bean.setDoubs(doubles);
Ebean.save(bean);
@@ -14,7 +14,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public class TestAggregationCount extends BaseTestCase {
@Test
public void test() {
public void testFull() {
TEventOne one = new TEventOne("first");
one.getLogs().add(new TEventMany("all", 1, 10));
@@ -28,8 +28,7 @@ public class TestAggregationCount extends BaseTestCase {
two.getLogs().add(new TEventMany("alf", 30, 13));
Ebean.save(two);
Query<TEventOne> query = Ebean.find(TEventOne.class)
Query<TEventOne> query2 = Ebean.find(TEventOne.class)
.select("name, count, totalUnits, totalAmount")
.where()
.startsWith("logs.description", "a")
@@ -37,14 +36,14 @@ public class TestAggregationCount extends BaseTestCase {
.ge("count", 1)
.orderBy().asc("name");
List<TEventOne> list = query.findList();
List<TEventOne> list = query2.findList();
for (TEventOne eventOne : list) {
System.out.println(eventOne.getId() + " " + eventOne.getName() + " count:" + eventOne.getCount() + " units:" + eventOne.getTotalUnits() + " amount:" + eventOne.getTotalAmount());
}
assertThat(list).isNotEmpty();
String sql = query.getGeneratedSql();
String sql = query2.getGeneratedSql();
assertThat(sql).contains("select t0.id c0, t0.name c1, count(u1.*) c2, sum(u1.units) c3, sum(u1.units * u1.amount) c4 from tevent_one t0");
assertThat(sql).contains("from tevent_one t0 join tevent_many u1 on u1.event_id = t0.id ");
assertThat(sql).contains("where u1.description like ? ");
@@ -52,4 +51,39 @@ public class TestAggregationCount extends BaseTestCase {
}
@Test
public void testSelectOnly() {
Query<TEventOne> query0 = Ebean.find(TEventOne.class)
.select("name, count, totalUnits, totalAmount");
query0.findList();
assertThat(query0.getGeneratedSql()).contains("select t0.id c0, t0.name c1, count(u1.*) c2, sum(u1.units) c3, sum(u1.units * u1.amount) c4 from tevent_one t0");
assertThat(query0.getGeneratedSql()).contains("group by t0.id, t0.name");
}
@Test
public void testSelectWhere() {
Query<TEventOne> query0 = Ebean.find(TEventOne.class)
.select("name, count, totalUnits, totalAmount")
.where().gt("logs.description", "a").query();
query0.findList();
assertThat(query0.getGeneratedSql()).contains("select t0.id c0, t0.name c1, count(u1.*) c2, sum(u1.units) c3, sum(u1.units * u1.amount) c4 from tevent_one t0");
assertThat(query0.getGeneratedSql()).contains("group by t0.id, t0.name");
}
@Test
public void testSelectHavingOrderBy() {
Query<TEventOne> query1 = Ebean.find(TEventOne.class)
.select("name, count, totalUnits, totalAmount")
.having().ge("count", 1)
.orderBy().asc("name");
query1.findList();
assertThat(query1.getGeneratedSql()).contains("having count(u1.*) >= ? order by t0.name");
}
}