diff --git a/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java b/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java index 1335f60ea..0b128f432 100644 --- a/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java +++ b/src/main/java/io/ebeaninternal/server/query/SqlTreeNodeBean.java @@ -397,6 +397,9 @@ class SqlTreeNodeBean implements SqlTreeNode { property.appendSelect(ctx, subQuery); } } + for (SqlTreeNode aChildren : children) { + aChildren.appendGroupBy(ctx, subQuery); + } ctx.popTableAlias(); ctx.popJoin(); } diff --git a/src/test/java/org/tests/query/aggregation/TestAggregationCount.java b/src/test/java/org/tests/query/aggregation/TestAggregationCount.java index c58ea279c..8b837b105 100644 --- a/src/test/java/org/tests/query/aggregation/TestAggregationCount.java +++ b/src/test/java/org/tests/query/aggregation/TestAggregationCount.java @@ -127,4 +127,16 @@ public class TestAggregationCount extends BaseTestCase { assertThat(query1.getGeneratedSql()).contains("having count(u1.id) >= ? order by t0.name"); } + @Test + public void testSelectWithFetch() { + + Query query0 = Ebean.find(TEventOne.class) + .select("name, count") + .fetch("event", "name"); + + query0.findList(); + String sql = sqlOf(query0, 5); + assertThat(sql).contains("select t0.id, t0.name, count(u1.id), t1.id, t1.name from tevent_one t0 left join tevent t1 on t1.id = t0.event_id join tevent_many u1 on u1.event_id = t0.id "); + assertThat(sql).contains("group by t0.id, t0.name, t1.id, t1.name"); + } }