This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push: new ece80bd CAY-2651 Support multiple IDs in the SelectById query use ObjectSelect instead of SelectQuery ece80bd is described below commit ece80bd3e9ec416719988f8903c4923593dd9530 Author: Nikita Timofeev <stari...@gmail.com> AuthorDate: Wed Mar 11 17:53:38 2020 +0300 CAY-2651 Support multiple IDs in the SelectById query use ObjectSelect instead of SelectQuery --- .../java/org/apache/cayenne/query/SelectById.java | 25 ++++++++++------------ 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectById.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectById.java index 949efdb..3f507ca 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectById.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectById.java @@ -330,23 +330,20 @@ public class SelectById<T> extends IndirectQuery implements Select<T> { return prefetches; } - @SuppressWarnings("deprecation") @Override protected Query createReplacementQuery(EntityResolver resolver) { ObjEntity entity = root.resolve(resolver); - SelectQuery<Object> query = new SelectQuery<>(); - query.setRoot(entity); - query.setFetchingDataRows(fetchingDataRows); - query.setQualifier(idSpec.getQualifier(entity)); - - // note on caching... this hits query cache instead of object cache... - // until we merge the two this may result in not using the cache - // optimally - object cache may have an object, but query cache will not - query.setCacheGroup(cacheGroup); - query.setCacheStrategy(cacheStrategy); - query.setPrefetchTree(prefetches); - + ObjectSelect<?> query = new ObjectSelect<>() + .entityName(entity.getName()) + .where(idSpec.getQualifier(entity)) + .cacheStrategy(cacheStrategy, cacheGroup); + if(prefetches != null) { + query.prefetch(prefetches); + } + if(fetchingDataRows) { + query.fetchDataRows(); + } return query; } @@ -373,7 +370,7 @@ public class SelectById<T> extends IndirectQuery implements Select<T> { @SafeVarargs private static <E, R> Collection<R> foldArguments(Function<E, R> mapper, E first, E... other) { - List<R> result = new ArrayList<>(); + List<R> result = new ArrayList<>(1 + other.length); result.add(mapper.apply(first)); for(E next : other) { result.add(mapper.apply(next));