From 852ee59da276c94d173335d80cc03a77a07f4422 Mon Sep 17 00:00:00 2001 From: Greg Burd Date: Mon, 23 Oct 2017 13:37:27 -0400 Subject: [PATCH] Only use session cache for entites and only when requested. --- .../core/operation/AbstractStreamOperation.java | 10 ++++++++-- .../net/helenus/core/operation/SelectOperation.java | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/helenus/core/operation/AbstractStreamOperation.java b/src/main/java/net/helenus/core/operation/AbstractStreamOperation.java index 593f5e3..8a2e7c6 100644 --- a/src/main/java/net/helenus/core/operation/AbstractStreamOperation.java +++ b/src/main/java/net/helenus/core/operation/AbstractStreamOperation.java @@ -15,6 +15,7 @@ */ package net.helenus.core.operation; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -87,13 +88,15 @@ public abstract class AbstractStreamOperation again = new ArrayList<>(); List facets = getFacets(); resultStream.forEach(result -> { sessionOps.updateCache(result, facets); + again.add(result); }); + resultStream = again.stream(); } - return resultStream; } finally { @@ -132,10 +135,13 @@ public abstract class AbstractStreamOperation again = new ArrayList<>(); List facets = getFacets(); resultStream.forEach(result -> { updateCache(uow, result, facets); + again.add(result); }); + resultStream = again.stream(); } return resultStream; diff --git a/src/main/java/net/helenus/core/operation/SelectOperation.java b/src/main/java/net/helenus/core/operation/SelectOperation.java index 6de43ad..bb317cd 100644 --- a/src/main/java/net/helenus/core/operation/SelectOperation.java +++ b/src/main/java/net/helenus/core/operation/SelectOperation.java @@ -54,6 +54,7 @@ public final class SelectOperation extends AbstractFilterStreamOperation extends AbstractFilterStreamOperation new HelenusPropertyNode(p, Optional.empty())) .forEach(p -> this.props.add(p)); + + isCacheable = entity.isCacheable(); } public SelectOperation(AbstractSessionOperations sessionOperations, HelenusEntity entity, @@ -94,6 +97,8 @@ public final class SelectOperation extends AbstractFilterStreamOperation new HelenusPropertyNode(p, Optional.empty())) .forEach(p -> this.props.add(p)); + + isCacheable = entity.isCacheable(); } public SelectOperation(AbstractSessionOperations sessionOperations, Function rowMapper,