diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java index ebe0ca971..423d6687b 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/OrmQueryRequest.java @@ -458,8 +458,8 @@ public final class OrmQueryRequest extends BeanRequest implements SpiOrmQuery /** * Return the many property that is fetched in the query or null if there is not one. */ - public BeanPropertyAssocMany manyProperty() { - return manyProperty; + public BeanPropertyAssocMany manyPropertyForOrderBy() { + return query.isSingleAttribute() ? null : manyProperty; } /** diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java index 10ec4d396..783ffe852 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/query/CQueryPredicates.java @@ -225,7 +225,7 @@ public final class CQueryPredicates { */ private void parsePropertiesToDbColumns(DeployParser deployParser) { // order by is dependent on the manyProperty (if there is one) - String logicalOrderBy = deriveOrderByWithMany(request.manyProperty()); + String logicalOrderBy = deriveOrderByWithMany(request.manyPropertyForOrderBy()); if (logicalOrderBy != null) { dbOrderBy = deployParser.parse(logicalOrderBy); } @@ -234,7 +234,7 @@ public final class CQueryPredicates { dbWhere = deriveWhere(deployParser); dbFilterMany = deriveFilterMany(deployParser); dbHaving = deriveHaving(deployParser); - // all includes including ones for manyWhere clause + // all includes, including ones for manyWhere clause predicateIncludes = deployParser.getIncludes(); } @@ -293,8 +293,7 @@ public final class CQueryPredicates { } /** - * There is a many property so we need to make sure the ordering is - * appropriate. + * There is a many property we need to make sure the ordering is appropriate. */ private String deriveOrderByWithMany(BeanPropertyAssocMany manyProp) { if (manyProp == null) { diff --git a/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java b/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java index d34af2ad5..67de4796c 100644 --- a/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java +++ b/ebean-test/src/test/java/org/tests/query/other/TestQuerySingleAttribute.java @@ -757,8 +757,7 @@ public class TestQuerySingleAttribute extends BaseTestCase { } @Test - public void oneToMany_distinct() { - + void oneToMany_distinct() { ResetBasicData.reset(); Query query = DB.find(Customer.class)