diff --git a/core/api/src/main/java/com/blazebit/persistence/spi/JpaProvider.java b/core/api/src/main/java/com/blazebit/persistence/spi/JpaProvider.java
index 0e3ddb0c86..0545ecb1e2 100644
--- a/core/api/src/main/java/com/blazebit/persistence/spi/JpaProvider.java
+++ b/core/api/src/main/java/com/blazebit/persistence/spi/JpaProvider.java
@@ -301,6 +301,14 @@ public interface JpaProvider {
*/
public boolean supportsForeignAssociationInOnClause();
+ /**
+ * Indicates whether an embeddable can be set via an update queries SET clause.
+ * Although the JPA spec mandates this, it doesn't seem to be asserted so some providers don't support it.
+ *
+ * @return true if supported, else false
+ */
+ public boolean supportsUpdateSetEmbeddable();
+
/**
* Indicates if the provider supports the use of transient entity objects as parameters.
@@ -340,7 +348,6 @@ public interface JpaProvider {
* The possible locations of a constraint.
*
* @author Christian Beikov
- * @since 1.2.0
*/
public static enum ConstraintType {
/**
diff --git a/documentation/src/main/asciidoc/entity-view/manual/en_US/11_configuration.adoc b/documentation/src/main/asciidoc/entity-view/manual/en_US/11_configuration.adoc
index 9ca4b5b516..f4feb97bec 100644
--- a/documentation/src/main/asciidoc/entity-view/manual/en_US/11_configuration.adoc
+++ b/documentation/src/main/asciidoc/entity-view/manual/en_US/11_configuration.adoc
@@ -83,4 +83,16 @@ e.g. `com.blazebit.persistence.view.batch_correlation_values.subProperty`
| Type | boolean
| Default | true
| Applicable | Always
-|====================
\ No newline at end of file
+|====================
+
+==== UPDATER_EAGER_LOADING
+
+// TODO: document
+
+==== UPDATER_FLUSH_MODE
+
+// TODO: document
+
+==== UPDATER_FLUSH_STRATEGY
+
+// TODO: document
\ No newline at end of file
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/ConfigurationProperties.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/ConfigurationProperties.java
index 1a88e78b10..1a582e80ca 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/ConfigurationProperties.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/ConfigurationProperties.java
@@ -24,7 +24,7 @@
public final class ConfigurationProperties {
/**
- * We added a flag to make it possible to use the generated proxies with serialization.
+ * A boolean flag to make it possible to use the generated proxies with serialization.
* When deserializing an instance the class might not have been loaded yet, so we can force loading
* proxy classes on startup to avoid this problem.
* By default the eager loading of proxies is disabled to have a better startup performance.
@@ -34,7 +34,7 @@ public final class ConfigurationProperties {
*/
public static final String PROXY_EAGER_LOADING = "com.blazebit.persistence.view.proxy.eager_loading";
/**
- * We added a flag to make it possible to prepare all view template caches on startup.
+ * A boolean flag to make it possible to prepare all view template caches on startup.
* By default the eager loading of the view templates is disabled to have a better startup performance.
* Valid values for this property are true
or false
.
*
@@ -42,7 +42,7 @@ public final class ConfigurationProperties {
*/
public static final String TEMPLATE_EAGER_LOADING = "com.blazebit.persistence.view.eager_loading";
/**
- * We added a flag to make it possible to disable unsafe proxy generation.
+ * A boolean flag to make it possible to disable unsafe proxy generation.
* By default the unsafe proxies are allowed to be able to make use of the features.
* Valid values for this property are true
or false
.
*
@@ -50,7 +50,7 @@ public final class ConfigurationProperties {
*/
public static final String PROXY_UNSAFE_ALLOWED = "com.blazebit.persistence.view.proxy.unsafe_allowed";
/**
- * We added a flag to make it possible to disable the expression validation.
+ * A boolean flag to make it possible to disable the expression validation.
* By default the expression validation is enabled, but since the validation is not bullet proof, it can be disabled.
* Valid values for this property are true
or false
.
*
@@ -79,13 +79,37 @@ public final class ConfigurationProperties {
*/
public static final String EXPECT_BATCH_CORRELATION_VALUES = "com.blazebit.persistence.view.batch_correlation_values";
/**
- * We added a flag to make it possible to prepare the entity view updater cache on startup.
+ * A boolean flag to make it possible to prepare the entity view updater cache on startup.
* By default the eager loading of entity view updates is disabled to have a better startup performance.
* Valid values for this property are true
or false
.
*
* @since 1.2.0
*/
public static final String UPDATER_EAGER_LOADING = "com.blazebit.persistence.view.updater.eager_loading";
+ /**
+ * An override for the flush mode of updatable entity views.
+ * By default, the property is not set. This has the effect, that the flush modes configured for the respective updatable entity views are used.
+ * Valid values for this property are partial
, lazy
or full
.
+ *
+ * To specify an override for a specific entity view, append the fully qualified entity view class name after the "flush_mode" like
+ * e.g. com.blazebit.persistence.view.updater.flush_mode.com.mypackage.views.MyView
+ *
+ * @since 1.2.0
+ * @see com.blazebit.persistence.view.FlushMode
+ */
+ public static final String UPDATER_FLUSH_MODE = "com.blazebit.persistence.view.updater.flush_mode";
+ /**
+ * An override for the flush strategy of updatable entity views.
+ * By default, the property is not set. This has the effect, that the flush strategies configured for the respective updatable entity views are used.
+ * Valid values for this property are auto
, entity
or query
.
+ *
+ * To specify an override for a specific entity view, append the fully qualified entity view class name after the "flush_strategy" like
+ * e.g. com.blazebit.persistence.view.updater.flush_strategy.com.mypackage.views.MyView
+ *
+ * @since 1.2.0
+ * @see com.blazebit.persistence.view.FlushStrategy
+ */
+ public static final String UPDATER_FLUSH_STRATEGY = "com.blazebit.persistence.view.updater.flush_strategy";
private ConfigurationProperties() {
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/EntityViewManagerImpl.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/EntityViewManagerImpl.java
index cabd6c6ce6..151229b881 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/EntityViewManagerImpl.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/EntityViewManagerImpl.java
@@ -116,6 +116,7 @@ public EntityViewManagerImpl(EntityViewConfigurationImpl config, CriteriaBuilder
ExpressionFactory expressionFactory = cbf.getService(ExpressionFactory.class);
MetamodelBuildingContext context = new MetamodelBuildingContextImpl(
+ config.getProperties(),
new DefaultBasicUserTypeRegistry(config.getUserTypeRegistry(), cbf),
cbf.getService(EntityMetamodel.class),
jpaProvider,
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/AbstractViewToEntityMapper.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/AbstractViewToEntityMapper.java
index 8b7e944fc9..1cdcfd488b 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/AbstractViewToEntityMapper.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/AbstractViewToEntityMapper.java
@@ -26,6 +26,7 @@
import com.blazebit.persistence.view.metamodel.FlatViewType;
import com.blazebit.persistence.view.metamodel.Type;
+import javax.persistence.Query;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -127,6 +128,11 @@ public , E, V> DirtyAttributeFlusher nestedGraphNode) {
+ return null;
+ }
+
protected Object persist(UpdateContext context, Object entity, Object view) {
if (persistAllowed) {
Class> viewTypeClass = getViewTypeClass(view);
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/UpdaterBasedViewToEntityMapper.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/UpdaterBasedViewToEntityMapper.java
index 09ef3393e4..f7ac9cc42d 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/UpdaterBasedViewToEntityMapper.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/UpdaterBasedViewToEntityMapper.java
@@ -23,6 +23,7 @@
import com.blazebit.persistence.view.impl.update.flush.DirtyAttributeFlusher;
import com.blazebit.persistence.view.metamodel.Type;
+import javax.persistence.Query;
import java.util.Set;
/**
@@ -107,4 +108,15 @@ public ViewAttributeAccessor getViewIdAccessor() {
public EntityAttributeAccessor getEntityIdAccessor() {
return idAccessor == null ? null : ReadOnlyEntityIdAccessor.INSTANCE;
}
+
+ @Override
+ public Query createUpdateQuery(UpdateContext context, Object view, DirtyAttributeFlusher, ?, ?> nestedGraphNode) {
+ Class> viewTypeClass = getViewTypeClass(view);
+ EntityViewUpdater updater = updateUpdater.get(viewTypeClass);
+ if (updater == null) {
+ return null;
+ }
+
+ return updater.createUpdateQuery(context, (MutableStateTrackable) view, nestedGraphNode);
+ }
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/ViewToEntityMapper.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/ViewToEntityMapper.java
index af1a137bec..faf643e681 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/ViewToEntityMapper.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/entity/ViewToEntityMapper.java
@@ -20,6 +20,8 @@
import com.blazebit.persistence.view.impl.update.flush.DirtyAttributeFlusher;
import com.blazebit.persistence.view.impl.update.flush.FetchGraphNode;
+import javax.persistence.Query;
+
/**
*
* @author Christian Beikov
@@ -37,4 +39,5 @@ public interface ViewToEntityMapper {
public EntityAttributeAccessor getEntityIdAccessor();
+ public Query createUpdateQuery(UpdateContext context, Object view, DirtyAttributeFlusher, ?, ?> nestedGraphNode);
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ManagedViewTypeImpl.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ManagedViewTypeImpl.java
index 32c04026d8..12fa02317c 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ManagedViewTypeImpl.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ManagedViewTypeImpl.java
@@ -79,8 +79,8 @@ public ManagedViewTypeImpl(ViewMapping viewMapping, MetamodelBuildingContext con
CreatableEntityView creatableEntityView = AnnotationUtils.findAnnotation(getJavaType(), CreatableEntityView.class);
if (updatableEntityView != null) {
this.updatable = true;
- this.flushMode = updatableEntityView.mode();
- this.flushStrategy = updatableEntityView.strategy();
+ this.flushMode = context.getFlushMode(javaType, updatableEntityView.mode());
+ this.flushStrategy = context.getFlushStrategy(javaType, updatableEntityView.strategy());
} else {
this.updatable = false;
this.flushMode = null;
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContext.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContext.java
index 6ed8592170..c6297e430f 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContext.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContext.java
@@ -20,6 +20,8 @@
import com.blazebit.persistence.impl.expression.ExpressionFactory;
import com.blazebit.persistence.spi.JpaProvider;
import com.blazebit.persistence.spi.JpqlFunction;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.proxy.ProxyFactory;
import com.blazebit.persistence.view.metamodel.Type;
@@ -49,6 +51,10 @@ public interface MetamodelBuildingContext {
public ProxyFactory getProxyFactory();
+ public FlushMode getFlushMode(Class> clazz, FlushMode defaultValue);
+
+ public FlushStrategy getFlushStrategy(Class> clazz, FlushStrategy defaultValue);
+
public void addError(String error);
public boolean hasErrors();
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContextImpl.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContextImpl.java
index 746630c291..93a2def542 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContextImpl.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/MetamodelBuildingContextImpl.java
@@ -23,6 +23,9 @@
import com.blazebit.persistence.impl.expression.MacroFunction;
import com.blazebit.persistence.spi.JpaProvider;
import com.blazebit.persistence.spi.JpqlFunction;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
+import com.blazebit.persistence.view.impl.ConfigurationProperties;
import com.blazebit.persistence.view.impl.JpqlMacroAdapter;
import com.blazebit.persistence.view.impl.MacroConfigurationExpressionFactory;
import com.blazebit.persistence.view.impl.macro.DefaultViewRootJpqlMacro;
@@ -35,6 +38,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
/**
@@ -54,7 +58,12 @@ public class MetamodelBuildingContextImpl implements MetamodelBuildingContext {
private final Set> entityViewClasses;
private final Set errors;
- public MetamodelBuildingContextImpl(BasicUserTypeRegistry basicUserTypeRegistry, EntityMetamodel entityMetamodel, JpaProvider jpaProvider, Map jpqlFunctions, ExpressionFactory expressionFactory, ProxyFactory proxyFactory, Set> entityViewClasses, Set errors) {
+ private final FlushMode flushModeOverride;
+ private final Map flushModeOverrides;
+ private final FlushStrategy flushStrategyOverride;
+ private final Map flushStrategyOverrides;
+
+ public MetamodelBuildingContextImpl(Properties properties, BasicUserTypeRegistry basicUserTypeRegistry, EntityMetamodel entityMetamodel, JpaProvider jpaProvider, Map jpqlFunctions, ExpressionFactory expressionFactory, ProxyFactory proxyFactory, Set> entityViewClasses, Set errors) {
this.basicUserTypeRegistry = basicUserTypeRegistry;
this.entityMetamodel = entityMetamodel;
this.jpaProvider = jpaProvider;
@@ -63,6 +72,80 @@ public MetamodelBuildingContextImpl(BasicUserTypeRegistry basicUserTypeRegistry,
this.proxyFactory = proxyFactory;
this.entityViewClasses = entityViewClasses;
this.errors = errors;
+ this.flushModeOverride = getFlushMode(properties.getProperty(ConfigurationProperties.UPDATER_FLUSH_MODE), "global property '" + ConfigurationProperties.UPDATER_FLUSH_MODE + "'");
+ this.flushModeOverrides = getFlushModeOverrides(properties);
+ this.flushStrategyOverride = getFlushStrategy(properties.getProperty(ConfigurationProperties.UPDATER_FLUSH_STRATEGY), "global property '" + ConfigurationProperties.UPDATER_FLUSH_STRATEGY + "'");
+ this.flushStrategyOverrides = getFlushStrategyOverrides(properties);
+ }
+
+ private FlushMode getFlushMode(String property, String location) {
+ if (property == null || property.isEmpty()) {
+ return null;
+ }
+
+ if ("partial".equals(property)) {
+ return FlushMode.PARTIAL;
+ } else if ("lazy".equals(property)) {
+ return FlushMode.LAZY;
+ } else if ("full".equals(property)) {
+ return FlushMode.FULL;
+ }
+
+ throw new IllegalArgumentException("Invalid flush mode defined for " + location + ": " + property);
+ }
+
+ private Map getFlushModeOverrides(Properties properties) {
+ String prefix = ConfigurationProperties.UPDATER_FLUSH_MODE + ".";
+ Map flushModes = new HashMap<>();
+ for (Map.Entry entry : properties.entrySet()) {
+ String key = (String) entry.getKey();
+ if (key.startsWith(prefix) && entry.getValue() != null) {
+ Object value = entry.getValue();
+ FlushMode mode;
+ if (value instanceof FlushMode) {
+ mode = (FlushMode) value;
+ } else {
+ mode = getFlushMode(entry.getValue().toString(), "property '" + key + "'");
+ }
+ flushModes.put(key.substring(prefix.length()), mode);
+ }
+ }
+ return flushModes;
+ }
+
+ private FlushStrategy getFlushStrategy(String property, String location) {
+ if (property == null || property.isEmpty()) {
+ return null;
+ }
+
+ if ("auto".equals(property)) {
+ return FlushStrategy.AUTO;
+ } else if ("query".equals(property)) {
+ return FlushStrategy.QUERY;
+ } else if ("entity".equals(property)) {
+ return FlushStrategy.ENTITY;
+ }
+
+ throw new IllegalArgumentException("Invalid flush strategy defined for " + location + ": " + property);
+ }
+
+ private Map getFlushStrategyOverrides(Properties properties) {
+ String prefix = ConfigurationProperties.UPDATER_FLUSH_STRATEGY + ".";
+ Map flushStrategies = new HashMap<>();
+ for (Map.Entry entry : properties.entrySet()) {
+ String key = (String) entry.getKey();
+ if (key.startsWith(prefix) && entry.getValue() != null) {
+ Object value = entry.getValue();
+ FlushStrategy strategy;
+ if (value instanceof FlushStrategy) {
+ strategy = (FlushStrategy) value;
+ } else {
+ strategy = getFlushStrategy(entry.getValue().toString(), "property '" + key + "'");
+ }
+ flushStrategies.put(key.substring(prefix.length()), strategy);
+ }
+ }
+ return flushStrategies;
}
@Override
@@ -120,6 +203,32 @@ public ProxyFactory getProxyFactory() {
return proxyFactory;
}
+ @Override
+ public FlushMode getFlushMode(Class> clazz, FlushMode defaultValue) {
+ if (flushModeOverride != null) {
+ return flushModeOverride;
+ }
+ FlushMode mode = flushModeOverrides.get(clazz.getName());
+ if (mode != null) {
+ return mode;
+ } else {
+ return defaultValue;
+ }
+ }
+
+ @Override
+ public FlushStrategy getFlushStrategy(Class> clazz, FlushStrategy defaultValue) {
+ if (flushStrategyOverride != null) {
+ return flushStrategyOverride;
+ }
+ FlushStrategy mode = flushStrategyOverrides.get(clazz.getName());
+ if (mode != null) {
+ return mode;
+ } else {
+ return defaultValue;
+ }
+ }
+
@Override
public void addError(String error) {
errors.add(error);
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ViewMapping.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ViewMapping.java
index 099b07d42a..f00bc2c6a4 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ViewMapping.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/metamodel/ViewMapping.java
@@ -144,6 +144,10 @@ public static ViewMapping initializeViewMappings(Class> entityViewRootClass, C
}
EntityView entityView = AnnotationUtils.findAnnotation(entityViewClass, EntityView.class);
+ if (entityView == null) {
+ context.addError("No entity view annotation found on type: " + entityViewClass.getName());
+ return null;
+ }
Class> entityClass = entityView.value();
ManagedType> managedType = context.getEntityMetamodel().managedType(entityClass);
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/proxy/ProxyFactory.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/proxy/ProxyFactory.java
index 1f40ca1030..53286426da 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/proxy/ProxyFactory.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/proxy/ProxyFactory.java
@@ -523,7 +523,8 @@ private CtMethod addGetter(CtClass cc, CtField field, String methodName, Class
return addGetter(cc, field, methodName, Descriptor.toJvmName(returnType.getName()), false);
} else {
try {
- return addGetter(cc, field, methodName, Descriptor.of(returnType.getName()), !returnType.isPrimitive() && field.getType().isPrimitive());
+
+ return addGetter(cc, field, methodName, Descriptor.of(returnType.getName()), !returnType.isPrimitive() && field != null && field.getType().isPrimitive());
} catch (NotFoundException e) {
throw new CannotCompileException(e);
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdater.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdater.java
index 51c73acd6e..2f5c88691c 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdater.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdater.java
@@ -21,6 +21,8 @@
import com.blazebit.persistence.view.impl.update.flush.DirtyAttributeFlusher;
import com.blazebit.persistence.view.impl.update.flush.FetchGraphNode;
+import javax.persistence.Query;
+
/**
*
* @author Christian Beikov
@@ -37,5 +39,6 @@ public interface EntityViewUpdater {
public Object executeUpdate(UpdateContext context, Object entity, MutableStateTrackable updatableProxy);
public Object executePersist(UpdateContext context, MutableStateTrackable updatableProxy);
-
+
+ public Query createUpdateQuery(UpdateContext context, MutableStateTrackable view, DirtyAttributeFlusher, ?, ?> nestedGraphNode);
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdaterImpl.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdaterImpl.java
index 98a8b11a3b..b3cc010aa3 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdaterImpl.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/EntityViewUpdaterImpl.java
@@ -21,6 +21,7 @@
import com.blazebit.persistence.impl.expression.ExpressionFactory;
import com.blazebit.persistence.impl.util.JpaMetamodelUtils;
import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.EntityViewManagerImpl;
import com.blazebit.persistence.view.impl.collection.RecordingCollection;
import com.blazebit.persistence.view.impl.collection.RecordingList;
@@ -79,6 +80,7 @@
import com.blazebit.persistence.view.metamodel.ViewType;
import javax.persistence.EntityManager;
+import javax.persistence.Query;
import javax.persistence.metamodel.EntityType;
import javax.persistence.metamodel.ManagedType;
import javax.persistence.metamodel.SingularAttribute;
@@ -99,27 +101,35 @@
*/
public class EntityViewUpdaterImpl implements EntityViewUpdater {
+ public static final String ID_PARAM_NAME = "_id";
+
private final Class> entityClass;
private final boolean fullFlush;
private final boolean rootUpdateAllowed;
private final boolean persistable;
+ private final FlushStrategy flushStrategy;
private final EntityLoader fullEntityLoader;
private final ViewAttributeAccessor viewIdAccessor;
private final EntityTupleizer tupleizer;
private final ObjectBuilder idViewBuilder;
private final CompositeAttributeFlusher fullFlusher;
+ private final String updatePrefixString;
+ private final String updatePostfixString;
+ private final String fullUpdateQueryString;
@SuppressWarnings({ "unchecked", "rawtypes" })
public EntityViewUpdaterImpl(EntityViewManagerImpl evm, ManagedViewTypeImpl> viewType) {
this.entityClass = viewType.getEntityClass();
this.fullFlush = viewType.getFlushMode() == FlushMode.FULL;
- this.persistable = evm.getMetamodel().getEntityMetamodel().getEntity(entityClass) != null;
+ this.flushStrategy = viewType.getFlushStrategy();
+ EntityType> entityType = evm.getMetamodel().getEntityMetamodel().getEntity(entityClass);
+ this.persistable = entityType != null;
if (persistable && viewType instanceof ViewType>) {
// To be able to invoke EntityViewManager#update on an updatable view of this type, it must have an id i.e. be a ViewType instead of a FlatViewType
// Otherwise we can't load the object itself
ViewType> view = (ViewType>) viewType;
this.rootUpdateAllowed = true;
- this.viewIdAccessor = new ViewIdAccessor(evm, view, false);
+ this.viewIdAccessor = new ViewIdAccessor(evm, (ViewType>) viewType, false);
if (view.getIdAttribute().isSubview()) {
com.blazebit.persistence.view.metamodel.SingularAttribute, ?> viewIdAttribute =
(com.blazebit.persistence.view.metamodel.SingularAttribute, ?>) view.getIdAttribute();
@@ -152,7 +162,7 @@ public EntityViewUpdaterImpl(EntityViewManagerImpl evm, ManagedViewTypeImpl> v
if (viewType instanceof ViewType>) {
idAttribute = ((ViewType) viewType).getIdAttribute();
if (idAttribute.isUpdatable()) {
- idFlusher = createAttributeFlusher(evm, viewType, (AbstractMethodAttribute, ?>) idAttribute, -1);
+ idFlusher = createAttributeFlusher(evm, viewType, flushStrategy, (AbstractMethodAttribute, ?>) idAttribute, -1);
} else {
idFlusher = null;
}
@@ -161,18 +171,61 @@ public EntityViewUpdaterImpl(EntityViewManagerImpl evm, ManagedViewTypeImpl> v
idFlusher = null;
}
+ javax.persistence.metamodel.SingularAttribute, ?> jpaIdAttribute = null;
+
+ if (idAttribute != null) {
+ jpaIdAttribute = JpaMetamodelUtils.getIdAttribute(evm.getMetamodel().getEntityMetamodel().entity(entityClass));
+ String mapping = ((MappingAttribute, ?>) idAttribute).getMapping();
+ if (!mapping.equals(jpaIdAttribute.getName())) {
+ throw new IllegalArgumentException("Expected JPA id attribute [" + jpaIdAttribute.getName() + "] to match the entity view id attribute mapping [" + mapping + "] but it didn't!");
+ }
+ }
+
// Flushers are ordered like the dirty and initial state array and have matching indexes
// Since attributes for which pass through flushers are created are not updatable and not mutable, they must come last, as there is no dirty state index for them
List> flushers = new ArrayList<>(attributes.size());
List> passThroughFlushers = null;
+ StringBuilder sb = null;
+ int clauseEndIndex = -1;
+
+ if (flushStrategy != FlushStrategy.ENTITY && jpaIdAttribute != null) {
+ this.updatePrefixString = "UPDATE " + entityType.getName() + " e SET ";
+ this.updatePostfixString = " WHERE e." + jpaIdAttribute.getName() + " = :" + ID_PARAM_NAME;
+ sb = new StringBuilder(updatePrefixString.length() + updatePostfixString.length() + attributes.size() * 50);
+ sb.append(updatePrefixString);
+ clauseEndIndex = sb.length();
+ } else {
+ this.updatePrefixString = null;
+ this.updatePostfixString = null;
+ }
+
+ if (idFlusher != null && sb != null) {
+ idFlusher.appendUpdateQueryFragment(sb);
+ // If something was appended, we also append a comma
+ if (sb != null && clauseEndIndex != sb.length()) {
+ clauseEndIndex = sb.length();
+ sb.append(", ");
+ }
+ }
+
for (MethodAttribute, ?> attribute : attributes) {
if (attribute == idAttribute) {
continue;
}
- DirtyAttributeFlusher flusher = createAttributeFlusher(evm, viewType, (AbstractMethodAttribute, ?>) attribute, flushers.size());
+ DirtyAttributeFlusher flusher = createAttributeFlusher(evm, viewType, flushStrategy, (AbstractMethodAttribute, ?>) attribute, flushers.size());
if (flusher != null) {
+ if (sb != null) {
+ int endIndex = sb.length();
+ flusher.appendUpdateQueryFragment(sb);
+
+ // If something was appended, we also append a comma
+ if (endIndex != sb.length()) {
+ clauseEndIndex = sb.length();
+ sb.append(", ");
+ }
+ }
if (flusher.isPassThrough()) {
if (passThroughFlushers == null) {
passThroughFlushers = new ArrayList<>();
@@ -188,17 +241,17 @@ public EntityViewUpdaterImpl(EntityViewManagerImpl evm, ManagedViewTypeImpl> v
flushers.addAll(passThroughFlushers);
}
- javax.persistence.metamodel.SingularAttribute, ?> jpaIdAttribute = null;
-
- if (idAttribute != null) {
- jpaIdAttribute = JpaMetamodelUtils.getIdAttribute(evm.getMetamodel().getEntityMetamodel().entity(entityClass));
- String mapping = ((MappingAttribute, ?>) idAttribute).getMapping();
- if (!mapping.equals(jpaIdAttribute.getName())) {
- throw new IllegalArgumentException("Expected JPA id attribute [" + jpaIdAttribute.getName() + "] to match the entity view id attribute mapping [" + mapping + "] but it didn't!");
+ this.fullFlusher = new CompositeAttributeFlusher(viewType.getJavaType(), entityClass, jpaIdAttribute, idFlusher, flushers.toArray(new DirtyAttributeFlusher[flushers.size()]), viewType.getFlushMode(), flushStrategy);
+ if (flushStrategy != FlushStrategy.ENTITY) {
+ if (clauseEndIndex + 2 == sb.length()) {
+ // Remove the last comma
+ sb.setLength(clauseEndIndex);
}
+ sb.append(updatePostfixString);
+ this.fullUpdateQueryString = sb.toString();
+ } else {
+ this.fullUpdateQueryString = null;
}
-
- this.fullFlusher = new CompositeAttributeFlusher(viewType.getJavaType(), entityClass, jpaIdAttribute, idFlusher, flushers.toArray(new DirtyAttributeFlusher[flushers.size()]), viewType.getFlushMode());
}
@Override
@@ -234,6 +287,33 @@ public Object executeUpdate(UpdateContext context, Object entity, MutableStateTr
return entity;
}
+ @Override
+ public Query createUpdateQuery(UpdateContext context, MutableStateTrackable updatableProxy, DirtyAttributeFlusher, ?, ?> flusher) {
+ String queryString;
+ if (flusher == fullFlusher) {
+ queryString = fullUpdateQueryString;
+ } else {
+ StringBuilder sb = new StringBuilder(updatePrefixString.length() + updatePostfixString.length() + 250);
+ sb.append(updatePrefixString);
+ int initialLength = sb.length();
+ flusher.appendUpdateQueryFragment(sb);
+ if (sb.length() == initialLength) {
+ queryString = null;
+ } else {
+ sb.append(updatePostfixString);
+ queryString = sb.toString();
+ }
+ }
+
+ Query query = null;
+ if (queryString != null) {
+ query = context.getEntityManager().createQuery(queryString);
+ query.setParameter(ID_PARAM_NAME, updatableProxy.$$_getId());
+ }
+
+ return query;
+ }
+
private void update(UpdateContext context, Object entity, MutableStateTrackable updatableProxy) {
if (!rootUpdateAllowed && entity == null) {
throw new IllegalArgumentException("Updating instances of the view type [" + updatableProxy.getClass().getName() + "] is not allowed because no entity id is known!");
@@ -247,7 +327,16 @@ private void update(UpdateContext context, Object entity, MutableStateTrackable
return;
}
- flusher.flushEntity(context, entity, updatableProxy, updatableProxy);
+ // TODO: Flush strategy AUTO should do flushEntity when entity is known to be fetched already
+ if (flushStrategy == FlushStrategy.ENTITY || !flusher.supportsQueryFlush()) {
+ flusher.flushEntity(context, entity, updatableProxy, updatableProxy);
+ } else {
+ Query query = createUpdateQuery(context, updatableProxy, flusher);
+ flusher.flushQuery(context, query, updatableProxy, updatableProxy);
+ if (query != null) {
+ query.executeUpdate();
+ }
+ }
updatableProxy.$$_setDirty(false);
context.getInitialStateResetter().addUpdatedView(updatableProxy);
}
@@ -277,7 +366,7 @@ public Object executePersist(UpdateContext context, MutableStateTrackable updata
}
@SuppressWarnings("unchecked")
- private static DirtyAttributeFlusher createAttributeFlusher(EntityViewManagerImpl evm, ManagedViewType> viewType, AbstractMethodAttribute, ?> attribute, int dirtyStateIndex) {
+ private static DirtyAttributeFlusher createAttributeFlusher(EntityViewManagerImpl evm, ManagedViewType> viewType, FlushStrategy flushStrategy, AbstractMethodAttribute, ?> attribute, int dirtyStateIndex) {
EntityMetamodel entityMetamodel = evm.getMetamodel().getEntityMetamodel();
Class> entityClass = viewType.getEntityClass();
String attributeName = attribute.getName();
@@ -303,11 +392,11 @@ private static DirtyAttributeFlusher createAttributeFlusher(EntityViewManagerImp
MapViewToEntityMapper mapper = new SimpleMapViewToEntityMapper(keyDescriptor.getViewToEntityMapper(), elementDescriptor.getViewToEntityMapper());
if (mapAttribute.isSorted()) {
- return new SortedMapAttributeFlusher, ?, ?>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper, mapAttribute.getComparator());
+ return new SortedMapAttributeFlusher, ?, ?>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper, mapAttribute.getComparator());
} else if (mapAttribute.isOrdered()) {
- return new OrderedMapAttributeFlusher, ?, ?>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
+ return new OrderedMapAttributeFlusher, ?, ?>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
} else {
- return new MapAttributeFlusher, ?, ?>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
+ return new MapAttributeFlusher, ?, ?>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
}
} else {
return null;
@@ -347,20 +436,20 @@ private static DirtyAttributeFlusher createAttributeFlusher(EntityViewManagerImp
}
}
if (pluralAttribute.isSorted()) {
- return new SortedSetAttributeFlusher, ?>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper, pluralAttribute.getComparator());
+ return new SortedSetAttributeFlusher, ?>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper, pluralAttribute.getComparator());
} else if (pluralAttribute.isOrdered()) {
if (pluralAttribute.getCollectionType() == PluralAttribute.CollectionType.SET) {
- return new OrderedSetAttributeFlusher, ?>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ return new OrderedSetAttributeFlusher, ?>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
} else {
- return new CollectionAttributeFlusher, ?>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ return new CollectionAttributeFlusher, ?>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
}
} else {
if (pluralAttribute.getCollectionType() == PluralAttribute.CollectionType.SET) {
- return new SetAttributeFlusher, ?>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ return new SetAttributeFlusher, ?>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
} else if (pluralAttribute.isIndexed()) {
- return new IndexedListAttributeFlusher>>(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ return new IndexedListAttributeFlusher>>(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
} else {
- return new ListAttributeFlusher(attributeName, attributeMapping, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ return new ListAttributeFlusher(attributeName, attributeMapping, flushStrategy, attributeAccessor, viewAttributeAccessor, inverseAttributeAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
}
}
} else {
@@ -492,7 +581,8 @@ private static DirtyAttributeFlusher createAttributeFlusher(EntityViewManagerImp
viewAttributeAccessor = new DefaultViewAttributeAccessor(evm, attribute, true);
}
- return new BasicAttributeFlusher<>(attributeName, attributeMapping, updatable, elementDescriptor, updateFragment, parameterName, attributeAccessor, viewAttributeAccessor);
+ boolean supportsQueryFlush = !elementDescriptor.isJpaEmbeddable() || evm.getJpaProvider().supportsUpdateSetEmbeddable();
+ return new BasicAttributeFlusher<>(attributeName, attributeMapping, supportsQueryFlush, updatable, elementDescriptor, updateFragment, parameterName, attributeAccessor, viewAttributeAccessor);
} else {
return null;
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/BasicAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/BasicAttributeFlusher.java
index fd07ca5656..96b403f067 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/BasicAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/BasicAttributeFlusher.java
@@ -34,6 +34,7 @@ public class BasicAttributeFlusher implements DirtyAttributeFlusher fetchGraphNode;
private final boolean updatable;
private final TypeDescriptor elementDescriptor;
@@ -42,12 +43,14 @@ public class BasicAttributeFlusher implements DirtyAttributeFlusher original, EntityLoaderFetchGraphNode> fetchGraphNode, V value, BasicFlushOperation flushOperation) {
+ private BasicAttributeFlusher(BasicAttributeFlusher original, EntityLoaderFetchGraphNode> fetchGraphNode, V value, boolean update, BasicFlushOperation flushOperation) {
this.attributeName = original.attributeName;
this.mapping = original.mapping;
this.fetch = fetchGraphNode != null;
+ this.supportsQueryFlush = original.supportsQueryFlush;
this.fetchGraphNode = fetchGraphNode;
this.updatable = original.updatable;
this.elementDescriptor = original.elementDescriptor;
@@ -71,6 +76,7 @@ private BasicAttributeFlusher(BasicAttributeFlusher original, EntityLoader
this.attributeAccessor = original.attributeAccessor;
this.viewAttributeAccessor = original.viewAttributeAccessor;
this.value = value;
+ this.update = update;
this.flushOperation = flushOperation;
}
@@ -95,13 +101,13 @@ public String getAttributeName() {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
- if (updateFragment != null) {
- sb.append(updateFragment);
- return true;
+ public void appendUpdateQueryFragment(StringBuilder sb) {
+ // It must be updatable and the value must have changed
+ if ((updatable || isPassThrough()) && (flushOperation == null || update)) {
+ if (updateFragment != null) {
+ sb.append(updateFragment);
+ }
}
-
- return false;
}
@Override
@@ -138,14 +144,19 @@ public FetchGraphNode> mergeWith(List> fetchGraphN
}
@Override
- public void flushQuery(UpdateContext context, Query query, V value) {
- if (parameterName != null) {
+ public boolean supportsQueryFlush() {
+ return supportsQueryFlush;
+ }
+
+ @Override
+ public void flushQuery(UpdateContext context, Query query, Object view, V value) {
+ value = persistOrMerge(context, null, view, value);
+ if (query != null && (updatable || isPassThrough()) && (flushOperation == null || update)) {
query.setParameter(parameterName, value);
}
}
- @Override
- public void flushEntity(UpdateContext context, E entity, Object view, V value) {
+ private V persistOrMerge(UpdateContext context, E entity, Object view, V value) {
if (flushOperation != null) {
V finalValue = this.value;
if (flushOperation == BasicFlushOperation.PERSIST) {
@@ -160,10 +171,7 @@ public void flushEntity(UpdateContext context, E entity, Object view, V value) {
viewAttributeAccessor.setValue(view, finalValue);
}
}
- if (attributeAccessor != null) {
- attributeAccessor.setValue(context, entity, value);
- }
- return;
+ return finalValue;
}
if (elementDescriptor.shouldJpaPersistOrMerge()) {
boolean shouldJpaPersistOrMerge;
@@ -175,7 +183,7 @@ public void flushEntity(UpdateContext context, E entity, Object view, V value) {
realValue = (V) viewAttributeAccessor.getValue(view);
shouldJpaPersistOrMerge = realValue != null && (
value == realValue || idEqual(value, realValue)
- ) && idEqual(attributeAccessor.getValue(context, entity), realValue);
+ ) && (entity == null || idEqual(attributeAccessor.getValue(context, entity), realValue));
}
if (shouldJpaPersistOrMerge) {
@@ -184,7 +192,7 @@ public void flushEntity(UpdateContext context, E entity, Object view, V value) {
if (elementDescriptor.shouldJpaPersist()) {
context.getEntityManager().persist(realValue);
}
- value = realValue;
+ return realValue;
} else if (elementDescriptor.shouldJpaMerge()) {
if (fetchGraphNode != null) {
Object id = fetchGraphNode.getEntityId(context, realValue);
@@ -194,13 +202,19 @@ public void flushEntity(UpdateContext context, E entity, Object view, V value) {
if (updatable && newValue != realValue) {
viewAttributeAccessor.setValue(view, newValue);
}
- value = newValue;
+ return newValue;
}
}
} else if (elementDescriptor.shouldFlushMutations()) {
- value = (V) viewAttributeAccessor.getValue(view);
+ return (V) viewAttributeAccessor.getValue(view);
}
+ return value;
+ }
+
+ @Override
+ public void flushEntity(UpdateContext context, E entity, Object view, V value) {
+ value = persistOrMerge(context, entity, view, value);
if (updatable || isPassThrough()) {
attributeAccessor.setValue(context, entity, value);
}
@@ -229,9 +243,9 @@ public DirtyAttributeFlusher, E, V> getDirtyFlusher(
if (updatable) {
if (initial != current) {
if (initial == null) {
- return noFetchFlusher(current, true);
+ return noFetchFlusher(current, true, true);
} else if (current == null) {
- return new BasicAttributeFlusher<>(this, null, null, BasicFlushOperation.NONE);
+ return new BasicAttributeFlusher<>(this, null, null, true, BasicFlushOperation.NONE);
} else {
if (elementDescriptor.shouldFlushMutations()) {
if (elementDescriptor.getBasicUserType().supportsDirtyChecking()) {
@@ -242,18 +256,18 @@ public DirtyAttributeFlusher, E, V> getDirtyFlusher(
// If current and initial have the same identity and current is not dirty, no need to flush at all
return null;
} else {
- return new BasicAttributeFlusher<>(this, null, (V) current, BasicFlushOperation.NONE);
+ return new BasicAttributeFlusher<>(this, null, (V) current, true, BasicFlushOperation.NONE);
}
} else if (dirtyProperties.length == 0) {
- return fetchFlusher(fetchGraphNode, current, true);
+ return fetchFlusher(fetchGraphNode, current, true, true);
} else {
- return fetchFlusher(elementDescriptor.getEntityToEntityMapper().getFetchGraph(context, dirtyProperties), current, true);
+ return fetchFlusher(elementDescriptor.getEntityToEntityMapper().getFetchGraph(context, dirtyProperties), current, true, true);
}
} else {
if (elementDescriptor.getBasicUserType().isDeepEqual(initial, current)) {
return null;
} else {
- return noFetchFlusher(current, true);
+ return noFetchFlusher(current, true, true);
}
}
} else {
@@ -272,7 +286,7 @@ public DirtyAttributeFlusher, E, V> getDirtyFlusher(
}
if (elementDescriptor.shouldFlushMutations()) {
- return mutableFlusher(context, current);
+ return mutableFlusher(context, current, false);
} else {
// No need to flush anything when having an immutable or non-cascading type
return null;
@@ -284,7 +298,7 @@ public DirtyAttributeFlusher, E, V> getDirtyFlusher(
Object newValue = viewAttributeAccessor.getValue(view);
if (current == newValue || elementDescriptor.isIdentifiable() && idEqual(initial, newValue)) {
- return mutableFlusher(context, current);
+ return mutableFlusher(context, current, false);
} else {
// If the value changed, but the attribute is marked as non-updatable, we are done here
return null;
@@ -296,57 +310,57 @@ public DirtyAttributeFlusher, E, V> getDirtyFlusher(
}
}
- private DirtyAttributeFlusher, E, V> noFetchFlusher(Object current, boolean flushAttribute) {
- return fetchFlusher(null, current, flushAttribute);
+ private DirtyAttributeFlusher, E, V> noFetchFlusher(Object current, boolean flushAttribute, boolean update) {
+ return fetchFlusher(null, current, flushAttribute, update);
}
- private DirtyAttributeFlusher, E, V> fetchFlusher(EntityLoaderFetchGraphNode> fetchGraphNode, Object current, boolean flushAttribute) {
+ private DirtyAttributeFlusher, E, V> fetchFlusher(EntityLoaderFetchGraphNode> fetchGraphNode, Object current, boolean flushAttribute, boolean update) {
if (elementDescriptor.shouldJpaPersistOrMerge()) {
if (elementDescriptor.getBasicUserType().shouldPersist(current)) {
if (elementDescriptor.isCascadePersist()) {
if (elementDescriptor.shouldJpaPersist()) {
- return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, BasicFlushOperation.PERSIST);
+ return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, update, BasicFlushOperation.PERSIST);
} else {
- return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, BasicFlushOperation.NONE);
+ return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, update, BasicFlushOperation.NONE);
}
} else if (flushAttribute) {
- return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, BasicFlushOperation.NONE);
+ return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, update, BasicFlushOperation.NONE);
} else {
return null;
}
} else {
if (elementDescriptor.isCascadeUpdate()) {
if (elementDescriptor.shouldJpaMerge()) {
- return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, BasicFlushOperation.MERGE);
+ return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, update, BasicFlushOperation.MERGE);
} else {
- return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, BasicFlushOperation.NONE);
+ return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, update, BasicFlushOperation.NONE);
}
} else if (flushAttribute) {
- return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, BasicFlushOperation.NONE);
+ return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, update, BasicFlushOperation.NONE);
} else {
return null;
}
}
} else if (flushAttribute) {
- return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, BasicFlushOperation.NONE);
+ return new BasicAttributeFlusher<>(this, fetchGraphNode, (V) current, update, BasicFlushOperation.NONE);
} else {
return null;
}
}
- protected DirtyAttributeFlusher, E, V> mutableFlusher(UpdateContext context, Object current) {
+ protected DirtyAttributeFlusher, E, V> mutableFlusher(UpdateContext context, Object current, boolean update) {
if (elementDescriptor.getBasicUserType().supportsDirtyChecking()) {
String[] dirtyProperties = elementDescriptor.getBasicUserType().getDirtyProperties(current);
if (dirtyProperties == null) {
// If nothing is dirty, no need to fetch or update
return null;
} else if (dirtyProperties.length == 0) {
- return fetchFlusher(fetchGraphNode, current, false);
+ return fetchFlusher(fetchGraphNode, current, false, update);
} else {
- return fetchFlusher(elementDescriptor.getEntityToEntityMapper().getFetchGraph(context, dirtyProperties), current, false);
+ return fetchFlusher(elementDescriptor.getEntityToEntityMapper().getFetchGraph(context, dirtyProperties), current, false, update);
}
} else {
- return fetchFlusher(fetchGraphNode, current, !elementDescriptor.isJpaEntity());
+ return fetchFlusher(fetchGraphNode, current, !elementDescriptor.isJpaEntity(), update);
}
}
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionAttributeFlusher.java
index 124981d79f..ce3f8b6eb1 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.collection.CollectionAction;
import com.blazebit.persistence.view.impl.collection.CollectionAddAction;
import com.blazebit.persistence.view.impl.collection.CollectionRemoveAction;
@@ -51,8 +52,8 @@ public class CollectionAttributeFlusher> extends Plur
protected final EntityToEntityMapper inverseEntityToEntityMapper;
@SuppressWarnings("unchecked")
- public CollectionAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
- super(attributeName, mapping, collectionUpdatable || elementDescriptor.shouldFlushMutations(), attributeMapper, viewAttributeAccessor, collectionUpdatable, elementDescriptor);
+ public CollectionAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
+ super(attributeName, mapping, collectionUpdatable || elementDescriptor.shouldFlushMutations(), flushStrategy, attributeMapper, viewAttributeAccessor, collectionUpdatable, elementDescriptor);
this.inverseRelationAccessor = inverseRelationAccessor;
this.inverseViewToEntityMapper = inverseViewToEntityMapper;
this.inverseEntityToEntityMapper = inverseEntityToEntityMapper;
@@ -122,7 +123,7 @@ public void flushEntity(UpdateContext context, E entity, Object view, V value) {
if (elementDescriptor.isSubview()) {
final ViewToEntityMapper mapper = elementDescriptor.getViewToEntityMapper();
- for (MutableStateTrackable element : (Iterable) value) {
+ for (Object element : value) {
Object elementEntity = mapper.applyToEntity(context, null, element);
if (added.containsKey(element)) {
inverseRelationAccessor.setValue(context, elementEntity, entity);
@@ -296,8 +297,14 @@ protected void mergeAndRequeue(UpdateContext context, RecordingCollection record
@Override
protected void mergeCollectionElements(UpdateContext context, Object view, E entity, V value) {
if (elementFlushers != null) {
- for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
- elementFlusher.flushEntity(context, entity, view, value);
+ if (flushStrategy == FlushStrategy.ENTITY) {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushEntity(context, entity, view, value);
+ }
+ } else {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushQuery(context, null, view, value);
+ }
}
} else {
// Invocations of JPA merge can change the identity that leads to requeuing into the collection being required
@@ -629,15 +636,18 @@ private List> getElementFlushersForActio
List> elementFlushers = new ArrayList<>();
if (elementDescriptor.isSubview()) {
final ViewToEntityMapper mapper = elementDescriptor.getViewToEntityMapper();
- for (MutableStateTrackable element : (Iterable) current) {
- @SuppressWarnings("unchecked")
- DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) mapper.getNestedDirtyFlusher(context, element, null);
- if (flusher != null) {
- Object addedElement = added.remove(element);
- if (addedElement != null) {
- elementFlushers.add((CollectionElementAttributeFlusher) (CollectionElementAttributeFlusher, ?>) new InverseCollectionElementAttributeFlusher<>(flusher, element, inverseViewToEntityMapper, inverseRelationAccessor, InverseCollectionElementAttributeFlusher.Strategy.SET));
- } else {
- elementFlushers.add(new CollectionElementAttributeFlusher<>(flusher, element));
+ for (Object o : current) {
+ if (o instanceof MutableStateTrackable) {
+ MutableStateTrackable element = (MutableStateTrackable) o;
+ @SuppressWarnings("unchecked")
+ DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) mapper.getNestedDirtyFlusher(context, element, null);
+ if (flusher != null) {
+ Object addedElement = added.remove(element);
+ if (addedElement != null) {
+ elementFlushers.add((CollectionElementAttributeFlusher) (CollectionElementAttributeFlusher, ?>) new InverseCollectionElementAttributeFlusher<>(flusher, element, inverseViewToEntityMapper, inverseRelationAccessor, InverseCollectionElementAttributeFlusher.Strategy.SET));
+ } else {
+ elementFlushers.add(new CollectionElementAttributeFlusher<>(flusher, mapper, element));
+ }
}
}
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionElementAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionElementAttributeFlusher.java
index 9fa8b40916..f66be9389a 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionElementAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CollectionElementAttributeFlusher.java
@@ -18,6 +18,7 @@
import com.blazebit.persistence.view.impl.entity.UpdateContext;
import com.blazebit.persistence.view.impl.entity.ViewAttributeAccessor;
+import com.blazebit.persistence.view.impl.entity.ViewToEntityMapper;
import javax.persistence.Query;
@@ -28,10 +29,12 @@
*/
public class CollectionElementAttributeFlusher extends CollectionElementFetchGraphNode, DirtyAttributeFlusher, E, V>> implements DirtyAttributeFlusher, E, V> {
+ protected final ViewToEntityMapper viewToEntityMapper;
protected final Object element;
- public CollectionElementAttributeFlusher(DirtyAttributeFlusher, E, V> nestedGraphNode, Object element) {
+ public CollectionElementAttributeFlusher(DirtyAttributeFlusher, E, V> nestedGraphNode, ViewToEntityMapper viewToEntityMapper, Object element) {
super(nestedGraphNode);
+ this.viewToEntityMapper = viewToEntityMapper;
this.element = element;
}
@@ -45,13 +48,25 @@ public V cloneDeep(Object view, V oldValue, V newValue) {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
- return nestedGraphNode.appendUpdateQueryFragment(sb);
+ public void appendUpdateQueryFragment(StringBuilder sb) {
+ nestedGraphNode.appendUpdateQueryFragment(sb);
}
@Override
- public void flushQuery(UpdateContext context, Query query, V value) {
- throw new UnsupportedOperationException();
+ public boolean supportsQueryFlush() {
+ return nestedGraphNode.supportsQueryFlush();
+ }
+
+ @Override
+ public void flushQuery(UpdateContext context, Query query, Object view, V value) {
+ Query q = null;
+ if (viewToEntityMapper != null) {
+ q = viewToEntityMapper.createUpdateQuery(context, element, nestedGraphNode);
+ }
+ nestedGraphNode.flushQuery(context, q, null, (V) element);
+ if (q != null) {
+ q.executeUpdate();
+ }
}
@Override
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CompositeAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CompositeAttributeFlusher.java
index b150a2435f..847659c84b 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CompositeAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/CompositeAttributeFlusher.java
@@ -17,6 +17,7 @@
package com.blazebit.persistence.view.impl.update.flush;
import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.entity.EntityLoader;
import com.blazebit.persistence.view.impl.entity.UpdateContext;
import com.blazebit.persistence.view.impl.entity.FlusherBasedEntityLoader;
@@ -26,6 +27,7 @@
import com.blazebit.persistence.view.impl.proxy.MutableStateTrackable;
import javax.persistence.Query;
+import javax.persistence.metamodel.SingularAttribute;
/**
*
@@ -38,20 +40,36 @@ public class CompositeAttributeFlusher extends CompositeAttributeFetchGraphNode<
private final javax.persistence.metamodel.SingularAttribute, ?> jpaIdAttribute;
private final DirtyAttributeFlusher, Object, Object> idFlusher;
private final FlushMode flushMode;
+ private final FlushStrategy flushStrategy;
private final EntityLoader entityLoader;
+ private final boolean supportsQueryFlush;
private final boolean hasPassThroughFlushers;
@SuppressWarnings("unchecked")
- public CompositeAttributeFlusher(Class> viewType, Class> entityClass, javax.persistence.metamodel.SingularAttribute, ?> jpaIdAttribute, DirtyAttributeFlusher, Object, Object> idFlusher, DirtyAttributeFlusher[] flushers, FlushMode flushMode) {
+ public CompositeAttributeFlusher(Class> viewType, Class> entityClass, SingularAttribute, ?> jpaIdAttribute, DirtyAttributeFlusher, Object, Object> idFlusher, DirtyAttributeFlusher[] flushers, FlushMode flushMode, FlushStrategy flushStrategy) {
super(viewType, flushers);
this.entityClass = entityClass;
this.jpaIdAttribute = jpaIdAttribute;
this.idFlusher = idFlusher;
this.flushMode = flushMode;
+ this.flushStrategy = flushStrategy;
this.entityLoader = new FlusherBasedEntityLoader(entityClass, jpaIdAttribute, flushers);
+ this.supportsQueryFlush = flushStrategy != FlushStrategy.ENTITY && supportsQueryFlush(flushers);
this.hasPassThroughFlushers = hasPassThroughFlushers(flushers);
}
+ public CompositeAttributeFlusher(CompositeAttributeFlusher original, DirtyAttributeFlusher[] flushers) {
+ super(original.viewType, original.attributeIndexMapping, flushers);
+ this.entityClass = original.entityClass;
+ this.jpaIdAttribute = original.jpaIdAttribute;
+ this.idFlusher = original.idFlusher;
+ this.flushMode = original.flushMode;
+ this.flushStrategy = original.flushStrategy;
+ this.entityLoader = new FlusherBasedEntityLoader(entityClass, jpaIdAttribute, flushers);
+ this.supportsQueryFlush = supportsQueryFlush(flushers);
+ this.hasPassThroughFlushers = original.hasPassThroughFlushers;
+ }
+
private boolean hasPassThroughFlushers(DirtyAttributeFlusher[] flushers) {
for (int i = 0; i < flushers.length; i++) {
if (flushers[i].isPassThrough()) {
@@ -62,14 +80,14 @@ private boolean hasPassThroughFlushers(DirtyAttributeFlusher[] flushers) {
return false;
}
- public CompositeAttributeFlusher(CompositeAttributeFlusher original, DirtyAttributeFlusher[] flushers) {
- super(original.viewType, original.attributeIndexMapping, flushers);
- this.entityClass = original.entityClass;
- this.jpaIdAttribute = original.jpaIdAttribute;
- this.idFlusher = original.idFlusher;
- this.flushMode = original.flushMode;
- this.entityLoader = new FlusherBasedEntityLoader(entityClass, jpaIdAttribute, flushers);
- this.hasPassThroughFlushers = original.hasPassThroughFlushers;
+ private boolean supportsQueryFlush(DirtyAttributeFlusher[] flushers) {
+ for (int i = 0; i < flushers.length; i++) {
+ if (flushers[i] != null && !flushers[i].supportsQueryFlush()) {
+ return false;
+ }
+ }
+
+ return true;
}
@Override
@@ -78,35 +96,73 @@ public Object cloneDeep(Object view, Object oldValue, Object newValue) {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
+ public void appendUpdateQueryFragment(StringBuilder sb) {
+ int clauseEndIndex = sb.length();
if (idFlusher != null) {
- sb.append(", ");
- if (!idFlusher.appendUpdateQueryFragment(sb)) {
- sb.setLength(sb.length() - 2);
+ idFlusher.appendUpdateQueryFragment(sb);
+ // If something was appended, we also append a comma
+ if (clauseEndIndex != sb.length()) {
+ clauseEndIndex = sb.length();
+ sb.append(", ");
}
}
+
for (int i = 0; i < flushers.length; i++) {
if (flushers[i] != null) {
- sb.append(", ");
- if (!flushers[i].appendUpdateQueryFragment(sb)) {
- sb.setLength(sb.length() - 2);
+ int endIndex = sb.length();
+ flushers[i].appendUpdateQueryFragment(sb);
+
+ // If something was appended, we also append a comma
+ if (endIndex != sb.length()) {
+ clauseEndIndex = sb.length();
+ sb.append(", ");
}
}
}
- // TODO: Not sure if this is correct, need to think about this again when really working on query flushing
- return true;
+ if (clauseEndIndex + 2 == sb.length()) {
+ // Remove the last comma
+ sb.setLength(clauseEndIndex);
+ }
}
@Override
- public void flushQuery(UpdateContext context, Query query, Object value) {
+ public boolean supportsQueryFlush() {
+ return supportsQueryFlush;
+ }
+
+ @Override
+ public void flushQuery(UpdateContext context, Query query, Object view, Object value) {
+ if (value == null || !(value instanceof MutableStateTrackable)) {
+ return;
+ }
+
if (idFlusher != null && value instanceof EntityViewProxy && ((EntityViewProxy) value).$$_isNew()) {
- idFlusher.flushQuery(context, query, ((EntityViewProxy) value).$$_getId());
+ idFlusher.flushQuery(context, query, view, ((EntityViewProxy) value).$$_getId());
}
Object[] state = ((MutableStateTrackable) value).$$_getMutableState();
- for (int i = 0; i < flushers.length; i++) {
+
+ if (value instanceof DirtyStateTrackable) {
+ Object[] initialState = ((DirtyStateTrackable) value).$$_getInitialState();
+ context.getInitialStateResetter().addState(initialState, initialState.clone());
+
+ for (int i = 0; i < state.length; i++) {
+ if (flushers[i] != null) {
+ initialState[i] = flushers[i].cloneDeep(value, initialState[i], state[i]);
+ flushers[i].flushQuery(context, query, view, state[i]);
+ }
+ }
+ } else {
+ for (int i = 0; i < state.length; i++) {
+ if (flushers[i] != null) {
+ flushers[i].flushQuery(context, query, view, state[i]);
+ }
+ }
+ }
+
+ for (int i = state.length; i < flushers.length; i++) {
if (flushers[i] != null) {
- flushers[i].flushQuery(context, query, state[i]);
+ flushers[i].flushQuery(context, query, view, flushers[i].getAttributeAccessor().getValue(value));
}
}
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/DirtyAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/DirtyAttributeFlusher.java
index b70a25b6be..e36414c17a 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/DirtyAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/DirtyAttributeFlusher.java
@@ -30,11 +30,13 @@ public interface DirtyAttributeFlusher,
public DirtyAttributeFlusher getDirtyFlusher(UpdateContext context, Object view, Object initial, Object current);
- public boolean appendUpdateQueryFragment(StringBuilder sb);
+ public void appendUpdateQueryFragment(StringBuilder sb);
public void appendFetchJoinQueryFragment(String base, StringBuilder sb);
+
+ public boolean supportsQueryFlush();
- public void flushQuery(UpdateContext context, Query query, V value);
+ public void flushQuery(UpdateContext context, Query query, Object view, V value);
public void flushEntity(UpdateContext context, E entity, Object view, V value);
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/EmbeddableAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/EmbeddableAttributeFlusher.java
index 3cb347da0f..fd56a13eb8 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/EmbeddableAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/EmbeddableAttributeFlusher.java
@@ -23,8 +23,6 @@
import com.blazebit.persistence.view.impl.proxy.MutableStateTrackable;
import javax.persistence.Query;
-import java.util.ArrayList;
-import java.util.List;
/**
*
@@ -66,13 +64,17 @@ public V cloneDeep(Object view, V oldValue, V newValue) {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
- sb.append(updateFragment);
+ public boolean supportsQueryFlush() {
return true;
}
@Override
- public void flushQuery(UpdateContext context, Query query, V value) {
+ public void appendUpdateQueryFragment(StringBuilder sb) {
+ sb.append(updateFragment);
+ }
+
+ @Override
+ public void flushQuery(UpdateContext context, Query query, Object view, V value) {
query.setParameter(parameterName, viewToEntityMapper.applyToEntity(context, null, value));
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/IndexedListAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/IndexedListAttributeFlusher.java
index 2c38fd408c..4294c7ec47 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/IndexedListAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/IndexedListAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.collection.CollectionAction;
import com.blazebit.persistence.view.impl.collection.CollectionAddAction;
import com.blazebit.persistence.view.impl.collection.ListAction;
@@ -40,8 +41,8 @@
public class IndexedListAttributeFlusher> extends ListAttributeFlusher {
@SuppressWarnings("unchecked")
- public IndexedListAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
- super(attributeName, mapping, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ public IndexedListAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
+ super(attributeName, mapping, flushStrategy, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
}
public IndexedListAttributeFlusher(IndexedListAttributeFlusher original, boolean fetch) {
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/InverseCollectionElementAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/InverseCollectionElementAttributeFlusher.java
index 971b1d9257..1065c13478 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/InverseCollectionElementAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/InverseCollectionElementAttributeFlusher.java
@@ -27,13 +27,11 @@
*/
public class InverseCollectionElementAttributeFlusher extends CollectionElementAttributeFlusher {
- private final ViewToEntityMapper mapper;
private final EntityAttributeAccessor inverseAttributeAccessor;
private final Strategy strategy;
public InverseCollectionElementAttributeFlusher(DirtyAttributeFlusher, E, V> nestedGraphNode, Object element, ViewToEntityMapper mapper, EntityAttributeAccessor inverseAttributeAccessor, Strategy strategy) {
- super(nestedGraphNode, element);
- this.mapper = mapper;
+ super(nestedGraphNode, mapper, element);
this.inverseAttributeAccessor = inverseAttributeAccessor;
this.strategy = strategy;
}
@@ -42,15 +40,15 @@ public InverseCollectionElementAttributeFlusher(DirtyAttributeFlusher, E, V> n
@SuppressWarnings("unchecked")
public void flushEntity(UpdateContext context, E entity, Object view, V value) {
if (strategy == Strategy.REMOVE) {
- if (mapper != null) {
- context.getEntityManager().remove(mapper.applyToEntity(context, null, element));
+ if (viewToEntityMapper != null) {
+ context.getEntityManager().remove(viewToEntityMapper.applyToEntity(context, null, element));
} else {
context.getEntityManager().remove(element);
}
} else if (strategy != Strategy.IGNORE) {
Object newValue = strategy == Strategy.SET_NULL ? null : entity;
- if (mapper != null) {
- inverseAttributeAccessor.setValue(context, mapper.applyToEntity(context, null, element), newValue);
+ if (viewToEntityMapper != null) {
+ inverseAttributeAccessor.setValue(context, viewToEntityMapper.applyToEntity(context, null, element), newValue);
} else {
inverseAttributeAccessor.setValue(context, element, newValue);
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/ListAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/ListAttributeFlusher.java
index d07df132ae..d8b4a373d2 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/ListAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/ListAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.collection.CollectionAction;
import com.blazebit.persistence.view.impl.collection.RecordingCollection;
import com.blazebit.persistence.view.impl.collection.RecordingList;
@@ -35,8 +36,8 @@
public class ListAttributeFlusher> extends CollectionAttributeFlusher {
@SuppressWarnings("unchecked")
- public ListAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
- super(attributeName, mapping, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ public ListAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
+ super(attributeName, mapping, flushStrategy, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
}
public ListAttributeFlusher(ListAttributeFlusher original, boolean fetch) {
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MapAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MapAttributeFlusher.java
index 6b941c9da9..4e477b39b9 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MapAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MapAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.collection.MapAction;
import com.blazebit.persistence.view.impl.collection.MapPutAction;
import com.blazebit.persistence.view.impl.collection.MapRemoveAction;
@@ -48,8 +49,8 @@ public class MapAttributeFlusher> extends PluralAttribute
protected final TypeDescriptor keyDescriptor;
@SuppressWarnings("unchecked")
- public MapAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor keyDescriptor, TypeDescriptor elementDescriptor, MapViewToEntityMapper mapper) {
- super(attributeName, mapping, collectionUpdatable || elementDescriptor.isMutable(), attributeMapper, viewAttributeAccessor, collectionUpdatable, elementDescriptor);
+ public MapAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor keyDescriptor, TypeDescriptor elementDescriptor, MapViewToEntityMapper mapper) {
+ super(attributeName, mapping, collectionUpdatable || elementDescriptor.isMutable(), flushStrategy, attributeMapper, viewAttributeAccessor, collectionUpdatable, elementDescriptor);
this.keyDescriptor = keyDescriptor;
this.mapper = mapper;
}
@@ -350,8 +351,14 @@ private void mergeAndRequeue(UpdateContext context, RecordingMap recordingCollec
@Override
protected void mergeCollectionElements(UpdateContext context, Object view, E entity, V value) {
if (elementFlushers != null) {
- for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
- elementFlusher.flushEntity(context, entity, view, value);
+ if (flushStrategy == FlushStrategy.ENTITY) {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushEntity(context, entity, view, value);
+ }
+ } else {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushQuery(context, null, view, value);
+ }
}
} else {
// Invocations of JPA merge can change the identity that leads to requeuing into the collection being required
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MergeCollectionElementAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MergeCollectionElementAttributeFlusher.java
index 6c40c1b29d..b17b91f841 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MergeCollectionElementAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/MergeCollectionElementAttributeFlusher.java
@@ -29,7 +29,7 @@
public class MergeCollectionElementAttributeFlusher extends CollectionElementAttributeFlusher {
public MergeCollectionElementAttributeFlusher(Object element) {
- super(null, element);
+ super(null, null, element);
}
@Override
@@ -42,13 +42,12 @@ public void appendFetchJoinQueryFragment(String base, StringBuilder sb) {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
- throw new UnsupportedOperationException();
+ public void appendUpdateQueryFragment(StringBuilder sb) {
}
@Override
- public void flushQuery(UpdateContext context, Query query, V value) {
- throw new UnsupportedOperationException();
+ public void flushQuery(UpdateContext context, Query query, Object view, V value) {
+ context.getEntityManager().merge(element);
}
@Override
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedMapAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedMapAttributeFlusher.java
index 6034743794..db283b8be6 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedMapAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedMapAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.entity.EntityAttributeAccessor;
import com.blazebit.persistence.view.impl.entity.MapViewToEntityMapper;
import com.blazebit.persistence.view.impl.entity.ViewAttributeAccessor;
@@ -32,8 +33,8 @@
public class OrderedMapAttributeFlusher> extends MapAttributeFlusher {
@SuppressWarnings("unchecked")
- public OrderedMapAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor keyDescriptor, TypeDescriptor elementDescriptor, MapViewToEntityMapper mapper) {
- super(attributeName, mapping, attributeMapper, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
+ public OrderedMapAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor keyDescriptor, TypeDescriptor elementDescriptor, MapViewToEntityMapper mapper) {
+ super(attributeName, mapping, flushStrategy, attributeMapper, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
}
@SuppressWarnings("unchecked")
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedSetAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedSetAttributeFlusher.java
index 93b4ce0385..ac714fbb30 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedSetAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/OrderedSetAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.collection.CollectionAction;
import com.blazebit.persistence.view.impl.collection.RecordingCollection;
import com.blazebit.persistence.view.impl.collection.RecordingSet;
@@ -36,8 +37,8 @@
*/
public class OrderedSetAttributeFlusher> extends SetAttributeFlusher {
- public OrderedSetAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
- super(attributeName, mapping, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ public OrderedSetAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
+ super(attributeName, mapping, flushStrategy, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
}
public OrderedSetAttributeFlusher(OrderedSetAttributeFlusher original, boolean fetch) {
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PersistCollectionElementAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PersistCollectionElementAttributeFlusher.java
index c2755325f7..98e086beee 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PersistCollectionElementAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PersistCollectionElementAttributeFlusher.java
@@ -29,7 +29,7 @@
public class PersistCollectionElementAttributeFlusher extends CollectionElementAttributeFlusher {
public PersistCollectionElementAttributeFlusher(Object element) {
- super(null, element);
+ super(null, null, element);
}
@Override
@@ -42,13 +42,12 @@ public void appendFetchJoinQueryFragment(String base, StringBuilder sb) {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
- throw new UnsupportedOperationException();
+ public void appendUpdateQueryFragment(StringBuilder sb) {
}
@Override
- public void flushQuery(UpdateContext context, Query query, V value) {
- throw new UnsupportedOperationException();
+ public void flushQuery(UpdateContext context, Query query, Object view, V value) {
+ context.getEntityManager().persist(element);
}
@Override
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PluralAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PluralAttributeFlusher.java
index 6b39a803e6..4dca94c979 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PluralAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/PluralAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.entity.EntityAttributeAccessor;
import com.blazebit.persistence.view.impl.entity.UpdateContext;
import com.blazebit.persistence.view.impl.entity.ViewAttributeAccessor;
@@ -35,6 +36,7 @@
*/
public abstract class PluralAttributeFlusher, A, R, E, V> extends AttributeFetchGraphNode> implements DirtyAttributeFlusher {
+ protected final FlushStrategy flushStrategy;
protected final EntityAttributeAccessor attributeMapper;
protected final ViewAttributeAccessor viewAttributeAccessor;
protected final boolean collectionUpdatable;
@@ -44,8 +46,9 @@ public abstract class PluralAttributeFlusher> elementFlushers;
@SuppressWarnings("unchecked")
- public PluralAttributeFlusher(String attributeName, String mapping, boolean fetch, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor) {
+ public PluralAttributeFlusher(String attributeName, String mapping, boolean fetch, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor) {
super(attributeName, mapping, fetch, elementDescriptor.getViewToEntityMapper() == null ? null : elementDescriptor.getViewToEntityMapper().getFullGraphNode());
+ this.flushStrategy = flushStrategy;
this.attributeMapper = attributeMapper;
this.viewAttributeAccessor = viewAttributeAccessor;
this.collectionUpdatable = collectionUpdatable;
@@ -61,6 +64,7 @@ protected PluralAttributeFlusher(PluralAttributeFlusher original, boolean fetch)
protected PluralAttributeFlusher(PluralAttributeFlusher original, boolean fetch, PluralFlushOperation flushOperation, List extends A> collectionActions, List> elementFlushers) {
super(original.attributeName, original.mapping, fetch, elementFlushers == null ? original.nestedGraphNode : computeElementFetchGraphNode(elementFlushers));
+ this.flushStrategy = original.flushStrategy;
this.attributeMapper = original.attributeMapper;
this.viewAttributeAccessor = original.viewAttributeAccessor;
this.collectionUpdatable = original.collectionUpdatable;
@@ -87,12 +91,16 @@ public V cloneDeep(Object view, V oldValue, V newValue) {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
+ public void appendUpdateQueryFragment(StringBuilder sb) {
+ }
+
+ @Override
+ public boolean supportsQueryFlush() {
return false;
}
@Override
- public void flushQuery(UpdateContext context, Query query, V value) {
+ public void flushQuery(UpdateContext context, Query query, Object view, V value) {
throw new UnsupportedOperationException();
}
@@ -100,16 +108,28 @@ public void flushQuery(UpdateContext context, Query query, V value) {
protected void invokeFlushOperation(UpdateContext context, Object view, E entity, V value) {
switch (flushOperation) {
case COLLECTION_REPLAY_AND_ELEMENT:
- for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
- elementFlusher.flushEntity(context, entity, view, value);
+ if (flushStrategy == FlushStrategy.ENTITY) {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushEntity(context, entity, view, value);
+ }
+ } else {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushQuery(context, null, view, value);
+ }
}
case COLLECTION_REPLAY_ONLY:
final V targetCollection = (V) attributeMapper.getValue(context, entity);
invokeCollectionAction(context, targetCollection, collectionActions);
return;
case COLLECTION_REPLACE_AND_ELEMENT:
- for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
- elementFlusher.flushEntity(context, entity, view, value);
+ if (flushStrategy == FlushStrategy.ENTITY) {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushEntity(context, entity, view, value);
+ }
+ } else {
+ for (CollectionElementAttributeFlusher elementFlusher : elementFlushers) {
+ elementFlusher.flushQuery(context, null, view, value);
+ }
}
case COLLECTION_REPLACE_ONLY:
replaceCollection(context, entity, value);
@@ -266,21 +286,27 @@ protected final boolean determineElementFlushers(UpdateContext context, TypeDesc
if (typeDescriptor.isSubview()) {
final ViewToEntityMapper mapper = typeDescriptor.getViewToEntityMapper();
if (typeDescriptor.isIdentifiable()) {
- for (MutableStateTrackable element : (Iterable) current) {
- @SuppressWarnings("unchecked")
- DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) mapper.getNestedDirtyFlusher(context, element, null);
- if (flusher != null) {
- elementFlushers.add(new CollectionElementAttributeFlusher<>(flusher, element));
+ for (Object o : current) {
+ if (o instanceof MutableStateTrackable) {
+ MutableStateTrackable element = (MutableStateTrackable) o;
+ @SuppressWarnings("unchecked")
+ DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) mapper.getNestedDirtyFlusher(context, element, null);
+ if (flusher != null) {
+ elementFlushers.add(new CollectionElementAttributeFlusher<>(flusher, mapper, element));
+ }
}
}
} else {
- for (MutableStateTrackable element : (Iterable) current) {
- @SuppressWarnings("unchecked")
- DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) mapper.getNestedDirtyFlusher(context, element, null);
- if (flusher != null) {
- // We can't merge flat view elements separately so we need to replace the element in the collection
- // This is signalled by returning null
- return true;
+ for (Object o : current) {
+ if (o instanceof MutableStateTrackable) {
+ MutableStateTrackable element = (MutableStateTrackable) o;
+ @SuppressWarnings("unchecked")
+ DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) mapper.getNestedDirtyFlusher(context, element, null);
+ if (flusher != null) {
+ // We can't merge flat view elements separately so we need to replace the element in the collection
+ // This is signalled by returning null
+ return true;
+ }
}
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SetAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SetAttributeFlusher.java
index fbeb3ce051..11ff167ab5 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SetAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SetAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.collection.CollectionAction;
import com.blazebit.persistence.view.impl.collection.RecordingCollection;
import com.blazebit.persistence.view.impl.collection.RecordingSet;
@@ -37,8 +38,8 @@
public class SetAttributeFlusher> extends CollectionAttributeFlusher {
@SuppressWarnings("unchecked")
- public SetAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
- super(attributeName, mapping, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ public SetAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper) {
+ super(attributeName, mapping, flushStrategy, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
}
public SetAttributeFlusher(SetAttributeFlusher original, boolean fetch) {
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedMapAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedMapAttributeFlusher.java
index 1c36adf1ba..0256ddc5a7 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedMapAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedMapAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.entity.EntityAttributeAccessor;
import com.blazebit.persistence.view.impl.entity.MapViewToEntityMapper;
import com.blazebit.persistence.view.impl.entity.ViewAttributeAccessor;
@@ -35,8 +36,8 @@ public class SortedMapAttributeFlusher> extends Map
private final Comparator comparator;
@SuppressWarnings("unchecked")
- public SortedMapAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor keyDescriptor, TypeDescriptor elementDescriptor, MapViewToEntityMapper mapper, Comparator> comparator) {
- super(attributeName, mapping, attributeMapper, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
+ public SortedMapAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, boolean collectionUpdatable, TypeDescriptor keyDescriptor, TypeDescriptor elementDescriptor, MapViewToEntityMapper mapper, Comparator> comparator) {
+ super(attributeName, mapping, flushStrategy, attributeMapper, viewAttributeAccessor, collectionUpdatable, keyDescriptor, elementDescriptor, mapper);
this.comparator = (Comparator) comparator;
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedSetAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedSetAttributeFlusher.java
index ce86ab8c10..4303766dac 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedSetAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SortedSetAttributeFlusher.java
@@ -16,6 +16,7 @@
package com.blazebit.persistence.view.impl.update.flush;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.impl.collection.CollectionAction;
import com.blazebit.persistence.view.impl.collection.RecordingCollection;
import com.blazebit.persistence.view.impl.collection.RecordingSortedSet;
@@ -40,8 +41,8 @@ public class SortedSetAttributeFlusher> extends SetAtt
private final Comparator comparator;
@SuppressWarnings("unchecked")
- public SortedSetAttributeFlusher(String attributeName, String mapping, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper, Comparator> comparator) {
- super(attributeName, mapping, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
+ public SortedSetAttributeFlusher(String attributeName, String mapping, FlushStrategy flushStrategy, EntityAttributeAccessor attributeMapper, ViewAttributeAccessor viewAttributeAccessor, EntityAttributeAccessor inverseRelationAccessor, boolean collectionUpdatable, TypeDescriptor elementDescriptor, ViewToEntityMapper inverseViewToEntityMapper, EntityToEntityMapper inverseEntityToEntityMapper, Comparator> comparator) {
+ super(attributeName, mapping, flushStrategy, attributeMapper, viewAttributeAccessor, inverseRelationAccessor, collectionUpdatable, elementDescriptor, inverseViewToEntityMapper, inverseEntityToEntityMapper);
this.comparator = (Comparator) comparator;
}
diff --git a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SubviewAttributeFlusher.java b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SubviewAttributeFlusher.java
index f1f9fc1aa2..3b42c5f185 100644
--- a/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SubviewAttributeFlusher.java
+++ b/entity-view/impl/src/main/java/com/blazebit/persistence/view/impl/update/flush/SubviewAttributeFlusher.java
@@ -21,6 +21,7 @@
import com.blazebit.persistence.view.impl.entity.ViewAttributeAccessor;
import com.blazebit.persistence.view.impl.entity.ViewToEntityMapper;
import com.blazebit.persistence.view.impl.proxy.MutableStateTrackable;
+import com.blazebit.persistence.view.impl.update.EntityViewUpdaterImpl;
import javax.persistence.Query;
@@ -39,6 +40,7 @@ public class SubviewAttributeFlusher extends AttributeFetchGraphNode nestedFlusher) {
+ private SubviewAttributeFlusher(SubviewAttributeFlusher original, boolean fetch, boolean update, DirtyAttributeFlusher, E, V> nestedFlusher) {
super(original.attributeName, original.mapping, fetch, nestedFlusher);
this.updatable = original.updatable;
this.updateFragment = original.updateFragment;
@@ -63,6 +66,7 @@ private SubviewAttributeFlusher(SubviewAttributeFlusher original, boolean fetch,
this.viewAttributeAccessor = original.viewAttributeAccessor;
this.subviewIdAccessor = original.subviewIdAccessor;
this.viewToEntityMapper = original.viewToEntityMapper;
+ this.update = update;
}
@Override
@@ -71,22 +75,45 @@ public V cloneDeep(Object view, V oldValue, V newValue) {
}
@Override
- public boolean appendUpdateQueryFragment(StringBuilder sb) {
- if (updatable) {
+ public void appendUpdateQueryFragment(StringBuilder sb) {
+ if (update && (updatable || isPassThrough())) {
sb.append(updateFragment);
- return true;
}
+ }
- return false;
+ @Override
+ public boolean supportsQueryFlush() {
+ return true;
}
@Override
- public void flushQuery(UpdateContext context, Query query, V value) {
- if (nestedGraphNode != null) {
- nestedGraphNode.flushQuery(context, query, value);
- }
- if (subviewIdAccessor != null) {
- query.setParameter(parameterName, subviewIdAccessor.getValue(value));
+ public void flushQuery(UpdateContext context, Query query, Object view, V value) {
+ if (updatable || isPassThrough()) {
+ if (nestedGraphNode != null && nestedGraphNode != viewToEntityMapper.getFullGraphNode()) {
+ Query q = viewToEntityMapper.createUpdateQuery(context, value, nestedGraphNode);
+ nestedGraphNode.flushQuery(context, q, null, value);
+ if (q != null) {
+ q.executeUpdate();
+ }
+ }
+ Object v = viewToEntityMapper.applyToEntity(context, null, value);
+ if (query != null && update) {
+ Object realValue = v == null ? null : subviewIdAccessor.getValue(value);
+ query.setParameter(parameterName, realValue);
+ }
+ } else {
+ V realValue = (V) viewAttributeAccessor.getValue(view);
+ if (nestedGraphNode != null && nestedGraphNode != viewToEntityMapper.getFullGraphNode()) {
+ Query q = viewToEntityMapper.createUpdateQuery(context, realValue, nestedGraphNode);
+ nestedGraphNode.flushQuery(context, q, null, realValue);
+ if (q != null) {
+ q.executeUpdate();
+ }
+ } else {
+ if (realValue != null && (value == realValue || viewIdEqual(value, realValue))) {
+ viewToEntityMapper.applyToEntity(context, null, realValue);
+ }
+ }
}
}
@@ -98,7 +125,9 @@ public void flushEntity(UpdateContext context, E entity, Object view, V value) {
nestedGraphNode.flushEntity(context, null, null, value);
}
Object v = viewToEntityMapper.applyToEntity(context, null, value);
- attributeAccessor.setValue(context, entity, v);
+ if (update) {
+ attributeAccessor.setValue(context, entity, v);
+ }
} else {
V realValue = (V) viewAttributeAccessor.getValue(view);
if (nestedGraphNode != null && nestedGraphNode != viewToEntityMapper.getFullGraphNode()) {
@@ -129,9 +158,10 @@ public DirtyAttributeFlusher, E, V> getDirtyFlushe
}
if (updatable) {
+ boolean needsUpdate = !viewIdEqual(initial, current);
// If the reference changed, we don't need to load the old reference
- if (initial != current && !viewIdEqual(initial, current)) {
- return new SubviewAttributeFlusher<>(this, false, null);
+ if (initial != current && needsUpdate) {
+ return new SubviewAttributeFlusher<>(this, false, needsUpdate, null);
}
// If the initial and current reference are null, no need to do anything further
@@ -143,7 +173,7 @@ public DirtyAttributeFlusher, E, V> getDirtyFlushe
if (current instanceof MutableStateTrackable) {
DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) viewToEntityMapper.getNestedDirtyFlusher(context, (MutableStateTrackable) current, this);
if (flusher != null) {
- return new SubviewAttributeFlusher<>(this, true, flusher);
+ return new SubviewAttributeFlusher<>(this, true, needsUpdate, flusher);
}
}
@@ -154,7 +184,7 @@ public DirtyAttributeFlusher, E, V> getDirtyFlushe
if (current == newValue || viewIdEqual(initial, newValue)) {
DirtyAttributeFlusher, E, V> flusher = (DirtyAttributeFlusher, E, V>) viewToEntityMapper.getNestedDirtyFlusher(context, (MutableStateTrackable) newValue, this);
if (flusher != null) {
- return new SubviewAttributeFlusher<>(this, true, flusher);
+ return new SubviewAttributeFlusher<>(this, true, false, flusher);
} else {
return null;
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/AbstractEntityViewUpdateTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/AbstractEntityViewUpdateTest.java
index be7e2e924b..eb231f4aec 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/AbstractEntityViewUpdateTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/AbstractEntityViewUpdateTest.java
@@ -27,7 +27,9 @@
import com.blazebit.persistence.view.EntityViewSetting;
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.UpdatableEntityView;
+import com.blazebit.persistence.view.impl.ConfigurationProperties;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
import org.junit.Before;
@@ -47,9 +49,46 @@
public abstract class AbstractEntityViewUpdateTest extends AbstractEntityViewTest {
protected static final long EPOCH_2K = 946684800000L;
+ protected static final Object[][] MODE_STRATEGY_COMBINATIONS = {
+ { FlushMode.LAZY, FlushStrategy.ENTITY },
+ { FlushMode.LAZY, FlushStrategy.QUERY },
+ { FlushMode.LAZY, FlushStrategy.AUTO },
+
+ { FlushMode.PARTIAL, FlushStrategy.ENTITY },
+ { FlushMode.PARTIAL, FlushStrategy.QUERY },
+ { FlushMode.PARTIAL, FlushStrategy.AUTO },
+
+ { FlushMode.FULL, FlushStrategy.ENTITY },
+ { FlushMode.FULL, FlushStrategy.QUERY },
+ { FlushMode.FULL, FlushStrategy.AUTO },
+ };
+ protected static final Object[][] MODE_STRATEGY_TYPE_COMBINATIONS = {
+ { FlushMode.LAZY, FlushStrategy.ENTITY, false },
+ { FlushMode.LAZY, FlushStrategy.QUERY, false },
+ { FlushMode.LAZY, FlushStrategy.AUTO, false },
+ { FlushMode.LAZY, FlushStrategy.ENTITY, true },
+ { FlushMode.LAZY, FlushStrategy.QUERY, true },
+ { FlushMode.LAZY, FlushStrategy.AUTO, true },
+
+ { FlushMode.PARTIAL, FlushStrategy.ENTITY, false },
+ { FlushMode.PARTIAL, FlushStrategy.QUERY, false },
+ { FlushMode.PARTIAL, FlushStrategy.AUTO, false },
+ { FlushMode.PARTIAL, FlushStrategy.ENTITY, true },
+ { FlushMode.PARTIAL, FlushStrategy.QUERY, true },
+ { FlushMode.PARTIAL, FlushStrategy.AUTO, true },
+
+ { FlushMode.FULL, FlushStrategy.ENTITY, false },
+ { FlushMode.FULL, FlushStrategy.QUERY, false },
+ { FlushMode.FULL, FlushStrategy.AUTO, false },
+ { FlushMode.FULL, FlushStrategy.ENTITY, true },
+ { FlushMode.FULL, FlushStrategy.QUERY, true },
+ { FlushMode.FULL, FlushStrategy.AUTO, true }
+ };
protected FlushMode mode;
+ protected FlushStrategy strategy;
protected Class viewType;
+ protected Class>[] views;
protected Document doc1;
protected Document doc2;
protected Person p1;
@@ -61,8 +100,22 @@ public AbstractEntityViewUpdateTest() {
}
public AbstractEntityViewUpdateTest(Class viewType) {
- this.viewType = viewType;
this.mode = AnnotationUtils.findAnnotation(viewType, UpdatableEntityView.class).mode();
+ this.strategy = AnnotationUtils.findAnnotation(viewType, UpdatableEntityView.class).strategy();
+ this.viewType = viewType;
+ this.views = new Class[0];
+ }
+
+
+ public AbstractEntityViewUpdateTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ this(mode, strategy, viewType, new Class[0]);
+ }
+
+ public AbstractEntityViewUpdateTest(FlushMode mode, FlushStrategy strategy, Class viewType, Class>... views) {
+ this.mode = mode;
+ this.strategy = strategy;
+ this.viewType = viewType;
+ this.views = views;
}
@Before
@@ -136,6 +189,11 @@ public void work(EntityManager em) {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
cfg.addEntityView(viewType);
+ for (Class> view : views) {
+ cfg.addEntityView(view);
+ }
+ cfg.setProperty(ConfigurationProperties.UPDATER_FLUSH_MODE, mode.name().toLowerCase());
+ cfg.setProperty(ConfigurationProperties.UPDATER_FLUSH_STRATEGY, strategy.name().toLowerCase());
registerViewTypes(cfg);
evm = cfg.createEntityViewManager(cbf);
}
@@ -187,7 +245,11 @@ protected void assertNoUpdateAndReload(T docView) {
clearQueries();
update(docView);
if (isFullMode()) {
- fullFetch(assertQuerySequence()).validate();
+ if (isQueryStrategy()) {
+ fullUpdate(assertQuerySequence()).validate();
+ } else {
+ fullFetch(assertQuerySequence()).validate();
+ }
} else {
assertQueryCount(0);
}
@@ -210,22 +272,38 @@ protected AssertStatementBuilder assertQueriesAfterUpdate(T docView) {
protected void validateNoChange(T docView) {
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ fullUpdate(builder);
+ }
+ } else {
+ if (isFullMode()) {
+ fullFetch(builder);
+ }
}
builder.validate();
AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
- if (isFullMode()) {
- fullFetch(afterBuilder);
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ fullUpdate(afterBuilder);
+ }
+ } else {
+ if (isFullMode()) {
+ fullFetch(afterBuilder);
+ }
}
afterBuilder.validate();
}
protected abstract AssertStatementBuilder fullFetch(AssertStatementBuilder builder);
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder;
+ }
+
protected void update(final T docView) {
transactional(new TxVoidWork() {
@@ -254,6 +332,10 @@ protected boolean isFullMode() {
return mode == FlushMode.FULL;
}
+ protected boolean isQueryStrategy() {
+ return strategy != FlushStrategy.ENTITY;
+ }
+
protected T getDoc1View() {
return getDocumentView(doc1.getId());
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicCollectionsTest.java
index a8bf4f11d6..bdd5fb7e8c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicCollectionsTest.java
@@ -18,6 +18,8 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
import com.blazebit.persistence.view.testsuite.update.basic.model.UpdatableDocumentBasicWithCollectionsViewBase;
import org.junit.experimental.categories.Category;
@@ -29,15 +31,15 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public abstract class AbstractEntityViewUpdateBasicCollectionsTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateBasicCollectionsTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateBasicCollectionsTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
}
public T updateReplaceCollection() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicMapsTest.java
index 5a5c7a77af..1b6a86474c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicMapsTest.java
@@ -18,28 +18,28 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
-import com.blazebit.persistence.view.testsuite.update.basic.model.UpdatableDocumentBasicWithCollectionsViewBase;
import com.blazebit.persistence.view.testsuite.update.basic.model.UpdatableDocumentBasicWithMapsViewBase;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.ArrayList;
import java.util.HashMap;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public abstract class AbstractEntityViewUpdateBasicMapsTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateBasicMapsTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateBasicMapsTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
}
public T updateReplaceCollection() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicTest.java
index 1f90a7ad14..67311d0af8 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/AbstractEntityViewUpdateBasicTest.java
@@ -18,6 +18,8 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
import com.blazebit.persistence.view.testsuite.update.basic.model.UpdatableDocumentBasicViewBase;
import org.junit.experimental.categories.Category;
@@ -29,15 +31,15 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public abstract class AbstractEntityViewUpdateBasicTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateBasicTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateBasicTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
}
public T simpleUpdate() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicCollectionsTest.java
index 56997eb449..ea84745fe5 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.FullUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.LazyUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.PartialUpdatableDocumentBasicWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.UpdatableDocumentBasicWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableBasicCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableBasicCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithCollectionsView.class },
- { PartialUpdatableDocumentBasicWithCollectionsView.class },
- { FullUpdatableDocumentBasicWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicMapsTest.java
index c79585159f..c1dde7bb89 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.FullUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.LazyUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.PartialUpdatableDocumentBasicWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.UpdatableDocumentBasicWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableBasicMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableBasicMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithMapsView.class },
- { PartialUpdatableDocumentBasicWithMapsView.class },
- { FullUpdatableDocumentBasicWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicTest.java
index 10c9fdbdaf..8f4acc977f 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/EntityViewUpdateCreatableBasicTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.FullUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.LazyUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.PartialUpdatableDocumentBasicView;
+import com.blazebit.persistence.view.testsuite.update.basic.creatable.model.UpdatableDocumentBasicView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableBasicTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableBasicTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicView.class },
- { PartialUpdatableDocumentBasicView.class },
- { FullUpdatableDocumentBasicView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicView.java
deleted file mode 100644
index 0c8c2f81ee..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index b150f94eea..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 7dacd44e37..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/FullUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicView.java
deleted file mode 100644
index 771e9c0dd6..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index b681df8937..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index a3ad6246d3..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/LazyUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicView.java
deleted file mode 100644
index 93c5d3f03d..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index ba19f38580..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 9e7fed14dc..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/PartialUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicView.java
index 33add1ec04..2af084382f 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicView extends UpdatableDocumentBasicViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithCollectionsView.java
index 64f82a8830..ebfb97ef7c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithCollectionsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithMapsView.java
index 8a7ca0c43b..c7df03dbcc 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatable/model/UpdatableDocumentBasicWithMapsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicCollectionsTest.java
index 7d39aae08a..df2a11c390 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.FullUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.LazyUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.PartialUpdatableDocumentBasicWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.UpdatableDocumentBasicWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableOnlyBasicCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableOnlyBasicCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithCollectionsView.class },
- { PartialUpdatableDocumentBasicWithCollectionsView.class },
- { FullUpdatableDocumentBasicWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicMapsTest.java
index 463ca14d39..6e53921401 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.FullUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.LazyUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.PartialUpdatableDocumentBasicWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.UpdatableDocumentBasicWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableOnlyBasicMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableOnlyBasicMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithMapsView.class },
- { PartialUpdatableDocumentBasicWithMapsView.class },
- { FullUpdatableDocumentBasicWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicTest.java
index 05bb530c51..cd329256d1 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/EntityViewUpdateCreatableOnlyBasicTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.FullUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.LazyUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.PartialUpdatableDocumentBasicView;
+import com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model.UpdatableDocumentBasicView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableOnlyBasicTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableOnlyBasicTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicView.class },
- { PartialUpdatableDocumentBasicView.class },
- { FullUpdatableDocumentBasicView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicView.java
deleted file mode 100644
index fc4821ee93..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index 79a3ed5c2d..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index b51fd2b0d8..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/FullUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicView.java
deleted file mode 100644
index 9263403360..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index bd4bad0512..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 901aaad953..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/LazyUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicView.java
deleted file mode 100644
index 8988dacdb7..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index c43909a685..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 25e19a4fa2..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/PartialUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicView.java
index 825c796d17..070efbacc6 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicView extends UpdatableDocumentBasicViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithCollectionsView.java
index b9b77b0381..49ac48563e 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithCollectionsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithMapsView.java
index 8059c71ab9..39a16d95ff 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/creatableonly/model/UpdatableDocumentBasicWithMapsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicViewBase.java
index e402d3c4a5..b3db1b0e17 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicViewBase.java
@@ -16,15 +16,20 @@
package com.blazebit.persistence.view.testsuite.update.basic.model;
+import com.blazebit.persistence.testsuite.entity.Document;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
import java.util.Date;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentBasicViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithCollectionsViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithCollectionsViewBase.java
index 2b85e22615..68ba234267 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithCollectionsViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithCollectionsViewBase.java
@@ -16,15 +16,20 @@
package com.blazebit.persistence.view.testsuite.update.basic.model;
+import com.blazebit.persistence.testsuite.entity.Document;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
import java.util.List;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentBasicWithCollectionsViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithMapsViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithMapsViewBase.java
index 1aaac05df2..2d549cb6aa 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithMapsViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/model/UpdatableDocumentBasicWithMapsViewBase.java
@@ -16,16 +16,20 @@
package com.blazebit.persistence.view.testsuite.update.basic.model;
+import com.blazebit.persistence.testsuite.entity.Document;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
-import java.util.List;
import java.util.Map;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentBasicWithMapsViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicCollectionsTest.java
index a3631e8f68..3abd85d6f4 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicCollectionsTest.java
@@ -20,50 +20,40 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.basic.AbstractEntityViewUpdateBasicCollectionsTest;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.FullUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.LazyUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.PartialUpdatableDocumentBasicWithCollectionsView;
import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.UpdatableDocumentBasicWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableBasicCollectionsTest extends AbstractEntityViewUpdateBasicCollectionsTest {
+public class EntityViewUpdateMutableBasicCollectionsTest extends AbstractEntityViewUpdateBasicCollectionsTest {
- public EntityViewUpdateMutableBasicCollectionsTest(Class viewType) {
- super(viewType);
+ public EntityViewUpdateMutableBasicCollectionsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentBasicWithCollectionsView.class);
}
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithCollectionsView.class },
- { PartialUpdatableDocumentBasicWithCollectionsView.class },
- { FullUpdatableDocumentBasicWithCollectionsView.class }
- });
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
@Test
public void testUpdateReplaceCollection() {
// Given
- final T docView = updateReplaceCollection();
+ final UpdatableDocumentBasicWithCollectionsView docView = updateReplaceCollection();
// Then
// Assert that the document and the strings are loaded in full mode.
@@ -83,7 +73,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given
- final T docView = updateAddToCollection();
+ final UpdatableDocumentBasicWithCollectionsView docView = updateAddToCollection();
// Then
// Assert that the document and the strings are loaded, but only a relation insert is done
@@ -102,7 +92,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given
- final T docView = updateAddToNewCollection();
+ final UpdatableDocumentBasicWithCollectionsView docView = updateAddToNewCollection();
// Then
// In partial mode, only the document is loaded. In full mode, the strings are also loaded
@@ -135,6 +125,12 @@ private AssertStatementBuilder assertReplaceAnd(AssertStatementBuilder builder)
.and();
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
@@ -142,4 +138,11 @@ protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
.fetching(Document.class, "strings")
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.assertUpdate()
+ .forEntity(Document.class)
+ .and();
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicMapsTest.java
index 15d1e69164..fb6ca09ad2 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicMapsTest.java
@@ -20,53 +20,40 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.testsuite.update.basic.AbstractEntityViewUpdateBasicCollectionsTest;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.basic.AbstractEntityViewUpdateBasicMapsTest;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.FullUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.FullUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.LazyUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.LazyUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.PartialUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.PartialUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.UpdatableDocumentBasicWithCollectionsView;
import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.UpdatableDocumentBasicWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableBasicMapsTest extends AbstractEntityViewUpdateBasicMapsTest {
+public class EntityViewUpdateMutableBasicMapsTest extends AbstractEntityViewUpdateBasicMapsTest {
- public EntityViewUpdateMutableBasicMapsTest(Class viewType) {
- super(viewType);
+ public EntityViewUpdateMutableBasicMapsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentBasicWithMapsView.class);
}
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithMapsView.class },
- { PartialUpdatableDocumentBasicWithMapsView.class },
- { FullUpdatableDocumentBasicWithMapsView.class }
- });
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
@Test
public void testUpdateReplaceCollection() {
// Given
- final T docView = updateReplaceCollection();
+ final UpdatableDocumentBasicWithMapsView docView = updateReplaceCollection();
// Then
// Assert that the document and the strings are loaded in full mode.
@@ -86,7 +73,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given
- final T docView = updateAddToCollection();
+ final UpdatableDocumentBasicWithMapsView docView = updateAddToCollection();
// Then
// Assert that the document and the strings are loaded, but only a relation insert is done
@@ -105,7 +92,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given
- final T docView = updateAddToNewCollection();
+ final UpdatableDocumentBasicWithMapsView docView = updateAddToNewCollection();
// Then
// In partial mode, only the document is loaded. In full mode, the strings are also loaded
@@ -138,6 +125,12 @@ private AssertStatementBuilder assertReplaceAnd(AssertStatementBuilder builder)
.and();
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
@@ -145,4 +138,11 @@ protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
.fetching(Document.class, "stringMap")
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.assertUpdate()
+ .forEntity(Document.class)
+ .and();
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicTest.java
index ac38868e1a..49fafa41eb 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/EntityViewUpdateMutableBasicTest.java
@@ -20,50 +20,40 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.basic.AbstractEntityViewUpdateBasicTest;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.FullUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.LazyUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.PartialUpdatableDocumentBasicView;
import com.blazebit.persistence.view.testsuite.update.basic.mutable.model.UpdatableDocumentBasicView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-
import static org.junit.Assert.assertEquals;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableBasicTest extends AbstractEntityViewUpdateBasicTest {
+public class EntityViewUpdateMutableBasicTest extends AbstractEntityViewUpdateBasicTest {
- public EntityViewUpdateMutableBasicTest(Class viewType) {
- super(viewType);
+ public EntityViewUpdateMutableBasicTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentBasicView.class);
}
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicView.class },
- { PartialUpdatableDocumentBasicView.class },
- { FullUpdatableDocumentBasicView.class }
- });
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
@Test
public void testSimpleUpdate() {
// Given & When
- final T docView = simpleUpdate();
+ final UpdatableDocumentBasicView docView = simpleUpdate();
// Then
fullFetchUpdateAndReload(docView);
@@ -74,7 +64,7 @@ public void testSimpleUpdate() {
@Test
public void testUpdateMutable() {
// Given & When
- final T docView = updateMutable();
+ final UpdatableDocumentBasicView docView = updateMutable();
// Then
fullFetchUpdateAndReload(docView);
@@ -84,18 +74,20 @@ public void testUpdateMutable() {
@Test
public void testMutateMutable() {
// Given & When
- final T docView = mutateMutable();
+ final UpdatableDocumentBasicView docView = mutateMutable();
// Then
fullFetchUpdateAndReload(docView);
assertEquals(0, doc1.getLastModified().getTime());
}
- private void fullFetchUpdateAndReload(T docView) {
+ private void fullFetchUpdateAndReload(UpdatableDocumentBasicView docView) {
// Assert that not only the document is loaded and finally also updated
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
builder.update(Document.class)
.validate();
@@ -109,4 +101,12 @@ protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
.fetching(Document.class)
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.assertUpdate()
+ .forEntity(Document.class)
+ .and();
+ }
+
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicView.java
deleted file mode 100644
index d45c0c62e9..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index dc0873fb6d..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 1d476902b3..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/FullUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicView.java
deleted file mode 100644
index 2dba1223e4..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index 8d1fd1ff9b..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 792499f691..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/LazyUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicView.java
deleted file mode 100644
index 0bf4469ecf..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index 86da031627..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 11e7262eca..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/PartialUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicView.java
index 775eab54ab..bbf594dc56 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicView extends UpdatableDocumentBasicViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithCollectionsView.java
index 6643476d99..565fc35094 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithCollectionsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithMapsView.java
index e1c73d6be4..53bd3248f0 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutable/model/UpdatableDocumentBasicWithMapsView.java
@@ -18,16 +18,14 @@
import com.blazebit.persistence.view.CascadeType;
import com.blazebit.persistence.view.UpdatableMapping;
-import com.blazebit.persistence.view.testsuite.update.basic.model.UpdatableDocumentBasicWithCollectionsViewBase;
import com.blazebit.persistence.view.testsuite.update.basic.model.UpdatableDocumentBasicWithMapsViewBase;
-import java.util.List;
import java.util.Map;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicCollectionsTest.java
index d82da3d0c2..5fc1972718 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.FullUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.LazyUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.PartialUpdatableDocumentBasicWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.UpdatableDocumentBasicWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateMutableOnlyBasicCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateMutableOnlyBasicCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithCollectionsView.class },
- { PartialUpdatableDocumentBasicWithCollectionsView.class },
- { FullUpdatableDocumentBasicWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicMapsTest.java
index 96f3579dc9..e47ac6de4a 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.FullUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.LazyUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.PartialUpdatableDocumentBasicWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.UpdatableDocumentBasicWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateMutableOnlyBasicMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateMutableOnlyBasicMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithMapsView.class },
- { PartialUpdatableDocumentBasicWithMapsView.class },
- { FullUpdatableDocumentBasicWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicTest.java
index d92480d229..b0cf096f76 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/EntityViewUpdateMutableOnlyBasicTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.FullUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.LazyUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.PartialUpdatableDocumentBasicView;
+import com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model.UpdatableDocumentBasicView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateMutableOnlyBasicTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateMutableOnlyBasicTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicView.class },
- { PartialUpdatableDocumentBasicView.class },
- { FullUpdatableDocumentBasicView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicView.java
deleted file mode 100644
index e187ef44a3..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index 23e1f5b6be..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index eb265c8edb..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/FullUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicView.java
deleted file mode 100644
index 4491e9019a..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index fb549180d2..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 677ea20821..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/LazyUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicView.java
deleted file mode 100644
index 829648efa1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index c9bfc82dc1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 488e7e82c1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/PartialUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicView.java
index 4f86bf142c..112bc0455c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicView extends UpdatableDocumentBasicViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithCollectionsView.java
index 84e94250fd..0a789c5f94 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithCollectionsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithMapsView.java
index a8f1243c00..27c15bdb1c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/mutableonly/model/UpdatableDocumentBasicWithMapsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicCollectionsTest.java
index 64f6cfe330..cf411955cc 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.FullUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.LazyUpdatableDocumentBasicWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.PartialUpdatableDocumentBasicWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.UpdatableDocumentBasicWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateUpdatableOnlyBasicCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateUpdatableOnlyBasicCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithCollectionsView.class },
- { PartialUpdatableDocumentBasicWithCollectionsView.class },
- { FullUpdatableDocumentBasicWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicMapsTest.java
index f6b664e446..564a3d2590 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.FullUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.LazyUpdatableDocumentBasicWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.PartialUpdatableDocumentBasicWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.UpdatableDocumentBasicWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateUpdatableOnlyBasicMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateUpdatableOnlyBasicMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicWithMapsView.class },
- { PartialUpdatableDocumentBasicWithMapsView.class },
- { FullUpdatableDocumentBasicWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicTest.java
index b7b61c39d4..16a42cdca6 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/EntityViewUpdateUpdatableOnlyBasicTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.FullUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.LazyUpdatableDocumentBasicView;
-import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.PartialUpdatableDocumentBasicView;
+import com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model.UpdatableDocumentBasicView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -38,32 +31,16 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.12.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateUpdatableOnlyBasicTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateUpdatableOnlyBasicTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentBasicView.class },
- { PartialUpdatableDocumentBasicView.class },
- { FullUpdatableDocumentBasicView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentBasicView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicView.java
deleted file mode 100644
index 15c07fe9c6..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index 376c73f088..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 7886be9381..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/FullUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicView.java
deleted file mode 100644
index dfc1b4c848..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index b35f381d53..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 00d4b45abd..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/LazyUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicView.java
deleted file mode 100644
index d3bcd4ad01..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicView extends UpdatableDocumentBasicView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java
deleted file mode 100644
index 0fda5f5988..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicWithMapsView.java
deleted file mode 100644
index 45bf58d4b7..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/PartialUpdatableDocumentBasicWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicView.java
index f362a10c62..de4fe28e0c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicView extends UpdatableDocumentBasicViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithCollectionsView.java
index ac25dd47d0..7d9e933a40 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithCollectionsView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithCollectionsView extends UpdatableDocumentBasicWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithMapsView.java
index ee4f22edc3..08843515dc 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/basic/updatableonly/model/UpdatableDocumentBasicWithMapsView.java
@@ -16,7 +16,6 @@
package com.blazebit.persistence.view.testsuite.update.basic.updatableonly.model;
-import com.blazebit.persistence.view.CascadeType;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.basic.model.UpdatableDocumentBasicWithMapsViewBase;
@@ -25,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentBasicWithMapsView extends UpdatableDocumentBasicWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableCollectionsTest.java
index aae772e2bd..1d2ebf8927 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableCollectionsTest.java
@@ -19,6 +19,8 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableWithCollectionsViewBase;
import org.junit.experimental.categories.Category;
@@ -30,15 +32,15 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public abstract class AbstractEntityViewUpdateEmbeddableCollectionsTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateEmbeddableCollectionsTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateEmbeddableCollectionsTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
}
public T updateReplaceCollection() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableMapsTest.java
index 2dd475613c..ca251d9be4 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableMapsTest.java
@@ -19,28 +19,28 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableWithCollectionsViewBase;
import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableWithMapsViewBase;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.ArrayList;
import java.util.HashMap;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public abstract class AbstractEntityViewUpdateEmbeddableMapsTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateEmbeddableMapsTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateEmbeddableMapsTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
}
public T updateReplaceCollection() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableTest.java
index ea5a34a396..cd34fed901 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/AbstractEntityViewUpdateEmbeddableTest.java
@@ -19,26 +19,26 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableViewBase;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Date;
-
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public abstract class AbstractEntityViewUpdateEmbeddableTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateEmbeddableTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateEmbeddableTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
}
public T simpleUpdate() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableCollectionsTest.java
index ed57beccd4..f066facfbf 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.FullUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.LazyUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.PartialUpdatableDocumentEmbeddableWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.UpdatableDocumentEmbeddableWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableEmbeddableCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableEmbeddableCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithCollectionsView.class },
- { PartialUpdatableDocumentEmbeddableWithCollectionsView.class },
- { FullUpdatableDocumentEmbeddableWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableMapsTest.java
index e2a0be36ae..a756a5a377 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.FullUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.LazyUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.PartialUpdatableDocumentEmbeddableWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.UpdatableDocumentEmbeddableWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableEmbeddableMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableEmbeddableMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithMapsView.class },
- { PartialUpdatableDocumentEmbeddableWithMapsView.class },
- { FullUpdatableDocumentEmbeddableWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableTest.java
index a866223210..da604ab8d6 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/EntityViewUpdateCreatableEmbeddableTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.FullUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.LazyUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.PartialUpdatableDocumentEmbeddableView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model.UpdatableDocumentEmbeddableView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableEmbeddableTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableEmbeddableTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableView.class },
- { PartialUpdatableDocumentEmbeddableView.class },
- { FullUpdatableDocumentEmbeddableView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 0fd6ef8f5e..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 51538cccbd..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 898eda41b2..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/FullUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 199a1cd891..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 39323ed5e0..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 24950baf6d..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 4836216f26..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 6a82d49c17..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 5e6266726e..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableView.java
index 6e59c4cde1..dcbac9b6f3 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithCollectionsView.java
index b3a9eddb4a..f5bdc56bea 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithCollectionsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithMapsView.java
index 145ad676bb..f75e60a5cd 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatable/model/UpdatableDocumentEmbeddableWithMapsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableCollectionsTest.java
index 8a5520ce46..4e575f8d61 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.FullUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.LazyUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.PartialUpdatableDocumentEmbeddableWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.UpdatableDocumentEmbeddableWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableOnlyEmbeddableCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableOnlyEmbeddableCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithCollectionsView.class },
- { PartialUpdatableDocumentEmbeddableWithCollectionsView.class },
- { FullUpdatableDocumentEmbeddableWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableMapsTest.java
index 49f0ba62ab..b8c5ad4d3a 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.FullUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.LazyUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.PartialUpdatableDocumentEmbeddableWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.UpdatableDocumentEmbeddableWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableOnlyEmbeddableMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableOnlyEmbeddableMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithMapsView.class },
- { PartialUpdatableDocumentEmbeddableWithMapsView.class },
- { FullUpdatableDocumentEmbeddableWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableTest.java
index 770fcbc3cd..72d39c961f 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/EntityViewUpdateCreatableOnlyEmbeddableTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.FullUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.LazyUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.PartialUpdatableDocumentEmbeddableView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model.UpdatableDocumentEmbeddableView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateCreatableOnlyEmbeddableTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateCreatableOnlyEmbeddableTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableView.class },
- { PartialUpdatableDocumentEmbeddableView.class },
- { FullUpdatableDocumentEmbeddableView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 86efedcc2b..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 5216e5f538..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index cae973024c..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 1bcda724da..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 8738a975ce..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 6fb3a29338..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index bf5dcca9b7..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 06d444b45c..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 92f6679cf1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableView.java
index 1a6fffcdca..0c2329ad8b 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
index bde6d9ff3e..f1414b54dd 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
index b8d00bcc7f..6f97052294 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/creatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableViewBase.java
index 80d1b36151..bec32b394a 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableViewBase.java
@@ -16,16 +16,19 @@
package com.blazebit.persistence.view.testsuite.update.embeddable.model;
+import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
-
-import java.util.Date;
+import com.blazebit.persistence.view.UpdatableEntityView;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentEmbeddableViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithCollectionsViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithCollectionsViewBase.java
index 62fe8e6653..8309ba9698 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithCollectionsViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithCollectionsViewBase.java
@@ -16,16 +16,21 @@
package com.blazebit.persistence.view.testsuite.update.embeddable.model;
+import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
import java.util.List;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentEmbeddableWithCollectionsViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithMapsViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithMapsViewBase.java
index 4aa2422cc3..b62e51fb17 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithMapsViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/model/UpdatableDocumentEmbeddableWithMapsViewBase.java
@@ -16,17 +16,21 @@
package com.blazebit.persistence.view.testsuite.update.embeddable.model;
+import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
-import java.util.List;
import java.util.Map;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentEmbeddableWithMapsViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableCollectionsTest.java
index 1a0bd322f5..c20da959df 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableCollectionsTest.java
@@ -21,22 +21,17 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.spi.BasicUserType;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
-import com.blazebit.persistence.view.testsuite.update.basic.AbstractEntityViewUpdateBasicCollectionsTest;
import com.blazebit.persistence.view.testsuite.update.embeddable.AbstractEntityViewUpdateEmbeddableCollectionsTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.FullUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.LazyUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.PartialUpdatableDocumentEmbeddableWithCollectionsView;
import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.UpdatableDocumentEmbeddableWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
/**
@@ -47,25 +42,18 @@
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableEmbeddableCollectionsTest extends AbstractEntityViewUpdateEmbeddableCollectionsTest {
+public class EntityViewUpdateMutableEmbeddableCollectionsTest extends AbstractEntityViewUpdateEmbeddableCollectionsTest {
private boolean registerType;
- public EntityViewUpdateMutableEmbeddableCollectionsTest(Class viewType, boolean registerType) {
- super(viewType);
+ public EntityViewUpdateMutableEmbeddableCollectionsTest(FlushMode mode, FlushStrategy strategy, boolean registerType) {
+ super(mode, strategy, UpdatableDocumentEmbeddableWithCollectionsView.class);
this.registerType = registerType;
}
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithCollectionsView.class, false },
- { PartialUpdatableDocumentEmbeddableWithCollectionsView.class, false },
- { FullUpdatableDocumentEmbeddableWithCollectionsView.class, false },
- { LazyUpdatableDocumentEmbeddableWithCollectionsView.class, true },
- { PartialUpdatableDocumentEmbeddableWithCollectionsView.class, true },
- { FullUpdatableDocumentEmbeddableWithCollectionsView.class, true }
- });
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_TYPE_COMBINATIONS;
}
@Override
@@ -118,7 +106,7 @@ public NameObject deepClone(NameObject object) {
@Test
public void testUpdateReplaceCollection() {
// Given
- final T docView = updateReplaceCollection();
+ final UpdatableDocumentEmbeddableWithCollectionsView docView = updateReplaceCollection();
// Then
AssertStatementBuilder builder = assertQuerySequence();
@@ -162,7 +150,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given
- final T docView = updateAddToCollection();
+ final UpdatableDocumentEmbeddableWithCollectionsView docView = updateAddToCollection();
// Then
AssertStatementBuilder builder = assertQuerySequence();
@@ -214,7 +202,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given
- final T docView = updateAddToNewCollection();
+ final UpdatableDocumentEmbeddableWithCollectionsView docView = updateAddToNewCollection();
// Then
AssertStatementBuilder builder = assertQuerySequence();
@@ -272,6 +260,12 @@ private AssertStatementBuilder assertReplaceAnd(AssertStatementBuilder builder)
.and();
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableMapsTest.java
index 95cde31c7b..df1302001b 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableMapsTest.java
@@ -21,21 +21,17 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.spi.BasicUserType;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.update.embeddable.AbstractEntityViewUpdateEmbeddableMapsTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.FullUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.LazyUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.PartialUpdatableDocumentEmbeddableWithMapsView;
import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.UpdatableDocumentEmbeddableWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
/**
@@ -46,25 +42,18 @@
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableEmbeddableMapsTest extends AbstractEntityViewUpdateEmbeddableMapsTest {
+public class EntityViewUpdateMutableEmbeddableMapsTest extends AbstractEntityViewUpdateEmbeddableMapsTest {
private boolean registerType;
- public EntityViewUpdateMutableEmbeddableMapsTest(Class viewType, boolean registerType) {
- super(viewType);
+ public EntityViewUpdateMutableEmbeddableMapsTest(FlushMode mode, FlushStrategy strategy, boolean registerType) {
+ super(mode, strategy, UpdatableDocumentEmbeddableWithMapsView.class);
this.registerType = registerType;
}
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithMapsView.class, false },
- { PartialUpdatableDocumentEmbeddableWithMapsView.class, false },
- { FullUpdatableDocumentEmbeddableWithMapsView.class, false },
- { LazyUpdatableDocumentEmbeddableWithMapsView.class, true },
- { PartialUpdatableDocumentEmbeddableWithMapsView.class, true },
- { FullUpdatableDocumentEmbeddableWithMapsView.class, true }
- });
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_TYPE_COMBINATIONS;
}
@Override
@@ -117,7 +106,7 @@ public NameObject deepClone(NameObject object) {
@Test
public void testUpdateReplaceCollection() {
// Given
- final T docView = updateReplaceCollection();
+ final UpdatableDocumentEmbeddableWithMapsView docView = updateReplaceCollection();
// Then
AssertStatementBuilder builder = assertQuerySequence();
@@ -161,7 +150,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given
- final T docView = updateAddToCollection();
+ final UpdatableDocumentEmbeddableWithMapsView docView = updateAddToCollection();
// Then
AssertStatementBuilder builder = assertQuerySequence();
@@ -213,7 +202,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given
- final T docView = updateAddToNewCollection();
+ final UpdatableDocumentEmbeddableWithMapsView docView = updateAddToNewCollection();
// Then
AssertStatementBuilder builder = assertQuerySequence();
@@ -271,6 +260,12 @@ private AssertStatementBuilder assertReplaceAnd(AssertStatementBuilder builder)
.and();
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableTest.java
index dd1bf0ba3f..3ab520dce0 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/EntityViewUpdateMutableEmbeddableTest.java
@@ -21,22 +21,17 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.NameObject;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.spi.BasicUserType;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
-import com.blazebit.persistence.view.testsuite.update.basic.AbstractEntityViewUpdateBasicTest;
import com.blazebit.persistence.view.testsuite.update.embeddable.AbstractEntityViewUpdateEmbeddableTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.FullUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.LazyUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.PartialUpdatableDocumentEmbeddableView;
import com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model.UpdatableDocumentEmbeddableView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
/**
@@ -47,25 +42,18 @@
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableEmbeddableTest extends AbstractEntityViewUpdateEmbeddableTest {
+public class EntityViewUpdateMutableEmbeddableTest extends AbstractEntityViewUpdateEmbeddableTest {
private final boolean registerType;
- public EntityViewUpdateMutableEmbeddableTest(Class viewType, boolean registerType) {
- super(viewType);
+ public EntityViewUpdateMutableEmbeddableTest(FlushMode mode, FlushStrategy strategy, boolean registerType) {
+ super(mode, strategy, UpdatableDocumentEmbeddableView.class);
this.registerType = registerType;
}
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableView.class, false },
- { PartialUpdatableDocumentEmbeddableView.class, false },
- { FullUpdatableDocumentEmbeddableView.class, false },
- { LazyUpdatableDocumentEmbeddableView.class, true },
- { PartialUpdatableDocumentEmbeddableView.class, true },
- { FullUpdatableDocumentEmbeddableView.class, true }
- });
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_TYPE_COMBINATIONS;
}
@Override
@@ -118,10 +106,32 @@ public NameObject deepClone(NameObject object) {
@Test
public void testSimpleUpdate() {
// Given & When
- final T docView = simpleUpdate();
+ // We don't actually update the embeddable in a partial mode, when knowing the type and having a query strategy
+ final UpdatableDocumentEmbeddableView docView = simpleUpdate();
// Then
- fullFetchUpdateAndReload(docView);
+ // Assert that not only the document is loaded and finally also updated
+ AssertStatementBuilder builder = assertQuerySequence();
+ // In partial mode with knowing the type we can determine the embeddable didn't change
+ // So we can still use an update query since we don't need to include that attribute in the query
+ boolean canUpdateQueryOnly = super.isQueryStrategy() && (
+ jpaProvider.supportsUpdateSetEmbeddable() || !isFullMode() && registerType
+ );
+
+ if (!canUpdateQueryOnly) {
+ fullFetch(builder);
+ }
+
+ builder.update(Document.class)
+ .validate();
+
+ if (registerType) {
+ // When we register a type that can check for the dirtyness, we can skip the reload
+ assertNoUpdateAndReload(docView);
+ } else {
+ // Unfortunately we have to reload the document since we don't know if the embeddable is dirty
+ assertNoUpdateFullFetchAndReload(docView);
+ }
assertEquals("newDoc", docView.getName());
assertEquals(doc1.getName(), docView.getName());
}
@@ -129,7 +139,7 @@ public void testSimpleUpdate() {
@Test
public void testUpdateMutable() {
// Given & When
- final T docView = updateMutable();
+ final UpdatableDocumentEmbeddableView docView = updateMutable();
// Then
fullFetchUpdateAndReload(docView);
@@ -140,7 +150,7 @@ public void testUpdateMutable() {
@Test
public void testMutateMutable() {
// Given & When
- final T docView = mutateMutable();
+ final UpdatableDocumentEmbeddableView docView = mutateMutable();
// Then
fullFetchUpdateAndReload(docView);
@@ -148,11 +158,13 @@ public void testMutateMutable() {
assertEquals("newSecondaryName", doc1.getNameObject().getSecondaryName());
}
- private void fullFetchUpdateAndReload(T docView) {
+ private void fullFetchUpdateAndReload(UpdatableDocumentEmbeddableView docView) {
// Assert that not only the document is loaded and finally also updated
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
builder.update(Document.class)
.validate();
@@ -166,10 +178,22 @@ private void fullFetchUpdateAndReload(T docView) {
}
}
+ @Override
+ protected boolean isQueryStrategy() {
+ return jpaProvider.supportsUpdateSetEmbeddable() && super.isQueryStrategy();
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
.fetching(Document.class)
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.assertUpdate()
+ .forEntity(Document.class)
+ .and();
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 57df19f027..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 2d91112d8c..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index d152245727..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/FullUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index afa5ac2614..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index c5e4136ad5..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 690e3338ef..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 40896f48ff..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 5a837a4310..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index c6fd35946d..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableView.java
index 1d9c6d7ede..2e801c3019 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableView.java
@@ -21,12 +21,10 @@
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableViewBase;
-import java.util.Date;
-
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithCollectionsView.java
index 2c3bb0c1e0..2dcd0e5a23 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithCollectionsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithMapsView.java
index 65b0527198..8daa2aea36 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutable/model/UpdatableDocumentEmbeddableWithMapsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableCollectionsTest.java
index 6b3d452d1e..83fa69327d 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.FullUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.LazyUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.PartialUpdatableDocumentEmbeddableWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.UpdatableDocumentEmbeddableWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateMutableOnlyEmbeddableCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateMutableOnlyEmbeddableCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithCollectionsView.class },
- { PartialUpdatableDocumentEmbeddableWithCollectionsView.class },
- { FullUpdatableDocumentEmbeddableWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableMapsTest.java
index b178bdc5ac..82dc02738b 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.FullUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.LazyUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.PartialUpdatableDocumentEmbeddableWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.UpdatableDocumentEmbeddableWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateMutableOnlyEmbeddableMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateMutableOnlyEmbeddableMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithMapsView.class },
- { PartialUpdatableDocumentEmbeddableWithMapsView.class },
- { FullUpdatableDocumentEmbeddableWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableTest.java
index 7869c26aba..668e075b38 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/EntityViewUpdateMutableOnlyEmbeddableTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.FullUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.LazyUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.PartialUpdatableDocumentEmbeddableView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model.UpdatableDocumentEmbeddableView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateMutableOnlyEmbeddableTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateMutableOnlyEmbeddableTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableView.class },
- { PartialUpdatableDocumentEmbeddableView.class },
- { FullUpdatableDocumentEmbeddableView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index ca2748641e..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index c6cfd23a59..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 22c6930555..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 5727ea80a2..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 6927e0085e..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 0cc01361e3..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 3ff5da7890..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 5e6cca4468..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 45b1e3fd0b..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableView.java
index 1060df6561..1001d4d37c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
index 38c4c57075..157dc29480 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
index f0987b9fc5..f496469dca 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/mutableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableCollectionsTest.java
index a809a16e78..33752cb3e6 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableCollectionsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.FullUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.LazyUpdatableDocumentEmbeddableWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.PartialUpdatableDocumentEmbeddableWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.UpdatableDocumentEmbeddableWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateUpdatableOnlyEmbeddableCollectionsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateUpdatableOnlyEmbeddableCollectionsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithCollectionsView.class },
- { PartialUpdatableDocumentEmbeddableWithCollectionsView.class },
- { FullUpdatableDocumentEmbeddableWithCollectionsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithCollectionsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableMapsTest.java
index 377cf85f7c..11b0b1479e 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableMapsTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.FullUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.LazyUpdatableDocumentEmbeddableWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.PartialUpdatableDocumentEmbeddableWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.UpdatableDocumentEmbeddableWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateUpdatableOnlyEmbeddableMapsTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateUpdatableOnlyEmbeddableMapsTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableWithMapsView.class },
- { PartialUpdatableDocumentEmbeddableWithMapsView.class },
- { FullUpdatableDocumentEmbeddableWithMapsView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableWithMapsView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableTest.java
index b3a9c12d26..6514f9be37 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/EntityViewUpdateUpdatableOnlyEmbeddableTest.java
@@ -21,16 +21,9 @@
import com.blazebit.persistence.view.EntityViews;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.AbstractEntityViewTest;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.FullUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.LazyUpdatableDocumentEmbeddableView;
-import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.PartialUpdatableDocumentEmbeddableView;
+import com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model.UpdatableDocumentEmbeddableView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -40,30 +33,14 @@
* @author Christian Beikov
* @since 1.2.0
*/
-@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
public class EntityViewUpdateUpdatableOnlyEmbeddableTest extends AbstractEntityViewTest {
- protected Class> viewType;
-
- public EntityViewUpdateUpdatableOnlyEmbeddableTest(Class> viewType) {
- this.viewType = viewType;
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEmbeddableView.class },
- { PartialUpdatableDocumentEmbeddableView.class },
- { FullUpdatableDocumentEmbeddableView.class }
- });
- }
-
@Test
public void testValidateInvalidConfiguration() {
EntityViewConfiguration cfg = EntityViews.createDefaultConfiguration();
- cfg.addEntityView(viewType);
+ cfg.addEntityView(UpdatableDocumentEmbeddableView.class);
try {
evm = cfg.createEntityViewManager(cbf);
fail("Expected failure because of invalid attribute definition!");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 57eb8d5369..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 1b28dd05df..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 40d100447e..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/FullUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 380d9e5c60..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index ac6f787bcd..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 6160a08ee1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/LazyUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableView.java
deleted file mode 100644
index 6433154afb..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
deleted file mode 100644
index 3c57047b60..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
deleted file mode 100644
index 6d892c0313..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/PartialUpdatableDocumentEmbeddableWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableView.java
index ff1a47132a..4d26431f74 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableView.java
@@ -17,14 +17,13 @@
package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
import com.blazebit.persistence.testsuite.entity.NameObject;
-import com.blazebit.persistence.view.CascadeType;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableViewBase;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableView extends UpdatableDocumentEmbeddableViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
index 46e301d3b8..969559e90c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithCollectionsView.java
@@ -17,7 +17,6 @@
package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
import com.blazebit.persistence.testsuite.entity.NameObject;
-import com.blazebit.persistence.view.CascadeType;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableWithCollectionsViewBase;
@@ -26,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithCollectionsView extends UpdatableDocumentEmbeddableWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
index f51203eebd..20961f1cc6 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/embeddable/updatableonly/model/UpdatableDocumentEmbeddableWithMapsView.java
@@ -17,7 +17,6 @@
package com.blazebit.persistence.view.testsuite.update.embeddable.updatableonly.model;
import com.blazebit.persistence.testsuite.entity.NameObject;
-import com.blazebit.persistence.view.CascadeType;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.embeddable.model.UpdatableDocumentEmbeddableWithMapsViewBase;
@@ -26,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEmbeddableWithMapsView extends UpdatableDocumentEmbeddableWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityCollectionsTest.java
index d920a3c987..e8c67970dd 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityCollectionsTest.java
@@ -17,20 +17,28 @@
package com.blazebit.persistence.view.testsuite.update.entity;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
+import org.junit.runners.Parameterized;
import java.util.ArrayList;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public abstract class AbstractEntityViewUpdateEntityCollectionsTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateEntityCollectionsTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateEntityCollectionsTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
+ }
+
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
public T replaceCollection() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityMapsTest.java
index c4cc3f4c2d..35a7763fd1 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityMapsTest.java
@@ -17,20 +17,28 @@
package com.blazebit.persistence.view.testsuite.update.entity;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
+import org.junit.runners.Parameterized;
import java.util.HashMap;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public abstract class AbstractEntityViewUpdateEntityMapsTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateEntityMapsTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateEntityMapsTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
+ }
+
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
public T replaceCollection() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityTest.java
index 463515d46f..9be23946c9 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/AbstractEntityViewUpdateEntityTest.java
@@ -17,18 +17,26 @@
package com.blazebit.persistence.view.testsuite.update.entity;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityViewBase;
+import org.junit.runners.Parameterized;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public abstract class AbstractEntityViewUpdateEntityTest extends AbstractEntityViewUpdateTest {
- public AbstractEntityViewUpdateEntityTest(Class viewType) {
- super(viewType);
+ public AbstractEntityViewUpdateEntityTest(FlushMode mode, FlushStrategy strategy, Class viewType) {
+ super(mode, strategy, viewType);
+ }
+
+ @Parameterized.Parameters(name = "{0} - {1}")
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
public T simpleUpdate() {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityCollectionsTest.java
index afd10edfd3..61f5b09f32 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityCollectionsTest.java
@@ -21,18 +21,15 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityCollectionsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.FullUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.LazyUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.PartialUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
+import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.UpdatableDocumentEntityWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.Iterator;
import static org.junit.Assert.assertEquals;
@@ -41,30 +38,21 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateCreatableEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
+public class EntityViewUpdateCreatableEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
- public EntityViewUpdateCreatableEntityCollectionsTest(Class viewType) {
- super(viewType);
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithCollectionsView.class },
- { PartialUpdatableDocumentEntityWithCollectionsView.class },
- { FullUpdatableDocumentEntityWithCollectionsView.class }
- });
+ public EntityViewUpdateCreatableEntityCollectionsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithCollectionsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = replaceCollection();
// Then
// We only fetch the document and the collection in full mode
@@ -85,7 +73,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -104,7 +92,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -124,7 +112,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -144,7 +132,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -165,7 +153,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -178,7 +166,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNullToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -206,7 +194,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithCollectionsView docView = setCollectionToNull();
// Then
// Assert that only the document is loaded
@@ -232,7 +220,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNewEntityToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -260,6 +248,12 @@ public void testUpdateAddNewEntityToCollection() {
}
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityMapsTest.java
index 724eda09a8..0078cb8d9f 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityMapsTest.java
@@ -21,50 +21,36 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityMapsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.FullUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.LazyUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.PartialUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
+import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.UpdatableDocumentEntityWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateCreatableEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
-
- public EntityViewUpdateCreatableEntityMapsTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateCreatableEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithMapsView.class },
- { PartialUpdatableDocumentEntityWithMapsView.class },
- { FullUpdatableDocumentEntityWithMapsView.class }
- });
+ public EntityViewUpdateCreatableEntityMapsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithMapsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithMapsView docView = replaceCollection();
// Then
// We only fetch the document and the collection in full mode
@@ -85,7 +71,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -104,7 +90,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -124,7 +110,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -144,7 +130,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -165,7 +151,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithMapsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -178,7 +164,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNullToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -206,7 +192,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithMapsView docView = setCollectionToNull();
// Then
// Assert that only the document is loaded
@@ -232,7 +218,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNewEntityToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -251,6 +237,12 @@ public void testUpdateAddNewEntityToCollection() {
assertEquals(doc1.getContacts(), docView.getContacts());
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityTest.java
index e2b07b6208..566bd44e36 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/EntityViewUpdateCreatableEntityTest.java
@@ -21,55 +21,44 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityTest;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.FullUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.LazyUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.PartialUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityViewBase;
+import com.blazebit.persistence.view.testsuite.update.entity.creatable.model.UpdatableDocumentEntityView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateCreatableEntityTest extends AbstractEntityViewUpdateEntityTest {
-
- public EntityViewUpdateCreatableEntityTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateCreatableEntityTest extends AbstractEntityViewUpdateEntityTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityView.class },
- { PartialUpdatableDocumentEntityView.class },
- { FullUpdatableDocumentEntityView.class }
- });
+ public EntityViewUpdateCreatableEntityTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityView.class);
}
@Test
public void testSimpleUpdate() {
// Given & When
- final T docView = simpleUpdate();
+ final UpdatableDocumentEntityView docView = simpleUpdate();
// Then
// Assert that not only the document is loaded
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
builder.update(Document.class)
.validate();
@@ -82,17 +71,19 @@ public void testSimpleUpdate() {
@Test
public void testUpdateWithEntity() {
// Given & When
- final T docView = updateWithEntity();
+ final UpdatableDocumentEntityView docView = updateWithEntity();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// Unfortunately, the new responsiblePerson has to be loaded by the JPA provider since it has to be merged
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.update(Document.class)
@@ -106,17 +97,19 @@ public void testUpdateWithEntity() {
@Test
public void testUpdateWithModifyEntity() {
// Given & When
- final T docView = updateWithModifyEntity();
+ final UpdatableDocumentEntityView docView = updateWithModifyEntity();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// Unfortunately, the new responsiblePerson has to be loaded by the JPA provider since it has to be merged
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.update(Document.class)
@@ -131,14 +124,20 @@ public void testUpdateWithModifyEntity() {
@Test
public void testUpdateWithModifyExisting() {
// Given & When
- final T docView = updateWithModifyExisting();
+ final UpdatableDocumentEntityView docView = updateWithModifyExisting();
// Then
// Since we update the old responsiblePerson, load it along with the document for updating it later
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ fullUpdate(builder);
+ }
+ } else {
+ if (isFullMode()) {
+ fullFetch(builder);
+ }
}
builder.validate();
@@ -151,17 +150,19 @@ public void testUpdateWithModifyExisting() {
@Test
public void testUpdateToNull() {
// Given & When
- final T docView = updateToNull();
+ final UpdatableDocumentEntityView docView = updateToNull();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// Since the new responsiblePerson is null, we don't need to do anything further
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.update(Document.class)
@@ -174,17 +175,19 @@ public void testUpdateToNull() {
@Test
public void testUpdateToNewPerson() {
// Given & When
- final T docView = updateToNewPerson();
+ final UpdatableDocumentEntityView docView = updateToNewPerson();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// The new responsiblePerson will be persisted
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.insert(Person.class)
@@ -194,17 +197,29 @@ public void testUpdateToNewPerson() {
// We always have to do a full fetch because the entity might be dirty
AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
- if (isFullMode()) {
- fullFetch(afterBuilder);
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ fullUpdate(afterBuilder);
+ }
+ } else {
+ if (isFullMode()) {
+ fullFetch(afterBuilder);
+ }
}
afterBuilder.validate();
assertEquals(docView.getResponsiblePerson().getId(), doc1.getResponsiblePerson().getId());
assertEquals("newPerson", doc1.getResponsiblePerson().getName());
}
+ @Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
.fetching(Document.class)
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.update(Document.class);
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityView.java
deleted file mode 100644
index d418a0bd68..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 730683fcec..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 3dd18e9346..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/FullUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityView.java
deleted file mode 100644
index c1707ee014..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 23ee4f6526..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index aef16745ce..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/LazyUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityView.java
deleted file mode 100644
index e77d50db99..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 5503c76100..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 1488ac5afa..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/PartialUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityView.java
index 97796a087e..f6e143896c 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityView extends UpdatableDocumentEntityViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithCollectionsView.java
index e76c34508c..2ed15fff23 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithCollectionsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithMapsView.java
index eac23ed0ff..d6806b67d7 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatable/model/UpdatableDocumentEntityWithMapsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityCollectionsTest.java
index f8ac0856f6..5a164ef726 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityCollectionsTest.java
@@ -21,51 +21,35 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityCollectionsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.FullUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.LazyUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.PartialUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
+import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.UpdatableDocumentEntityWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateCreatableOnlyEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
-
- public EntityViewUpdateCreatableOnlyEntityCollectionsTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateCreatableOnlyEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithCollectionsView.class },
- { PartialUpdatableDocumentEntityWithCollectionsView.class },
- { FullUpdatableDocumentEntityWithCollectionsView.class }
- });
+ public EntityViewUpdateCreatableOnlyEntityCollectionsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithCollectionsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = replaceCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -76,7 +60,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -87,7 +71,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -98,7 +82,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollectionAndModifyEntity();
// Then
// Since only new entities are persisted, nothing happens
@@ -110,7 +94,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollectionAndModifyEntity();
// Then
// Since only new entities are persisted, nothing happens
@@ -122,7 +106,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = modifyEntityInCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -134,7 +118,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNullToCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -145,7 +129,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithCollectionsView docView = setCollectionToNull();
// Then
// Nothing happens since the collection is not updatable but was nulled
@@ -156,7 +140,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNewEntityToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -175,6 +159,12 @@ public void testUpdateAddNewEntityToCollection() {
assertNoUpdateAndReload(docView);
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityMapsTest.java
index cf61c7db4c..6a659b81af 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityMapsTest.java
@@ -21,49 +21,35 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
-import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityCollectionsTest;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityMapsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.FullUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.LazyUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.PartialUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
+import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.UpdatableDocumentEntityWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateCreatableOnlyEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
-
- public EntityViewUpdateCreatableOnlyEntityMapsTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateCreatableOnlyEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithMapsView.class },
- { PartialUpdatableDocumentEntityWithMapsView.class },
- { FullUpdatableDocumentEntityWithMapsView.class }
- });
+ public EntityViewUpdateCreatableOnlyEntityMapsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithMapsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithMapsView docView = replaceCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -74,7 +60,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -85,7 +71,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -96,7 +82,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollectionAndModifyEntity();
// Then
// Since only new entities are persisted, nothing happens
@@ -108,7 +94,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollectionAndModifyEntity();
// Then
// Since only new entities are persisted, nothing happens
@@ -120,7 +106,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithMapsView docView = modifyEntityInCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -132,7 +118,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNullToCollection();
// Then
// Since only new entities are persisted, nothing happens
@@ -143,7 +129,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithMapsView docView = setCollectionToNull();
// Then
// Nothing happens since the collection is not updatable but was nulled
@@ -154,7 +140,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNewEntityToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -173,6 +159,12 @@ public void testUpdateAddNewEntityToCollection() {
assertNoUpdateAndReload(docView);
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityTest.java
index ccfecb6c12..81f1f55f74 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/EntityViewUpdateCreatableOnlyEntityTest.java
@@ -20,50 +20,35 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityTest;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.FullUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.LazyUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.PartialUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityViewBase;
+import com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model.UpdatableDocumentEntityView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateCreatableOnlyEntityTest extends AbstractEntityViewUpdateEntityTest {
-
- public EntityViewUpdateCreatableOnlyEntityTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateCreatableOnlyEntityTest extends AbstractEntityViewUpdateEntityTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityView.class },
- { PartialUpdatableDocumentEntityView.class },
- { FullUpdatableDocumentEntityView.class }
- });
+ public EntityViewUpdateCreatableOnlyEntityTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityView.class);
}
@Test
public void testSimpleUpdate() {
// Given & When
- final T docView = simpleUpdate();
+ final UpdatableDocumentEntityView docView = simpleUpdate();
// Then
// Assert that not only the document is loaded, but also always the responsiblePerson
@@ -71,7 +56,9 @@ public void testSimpleUpdate() {
// but since we don't know if entities are dirty, we need to be conservative and load the object
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
builder.update(Document.class)
.validate();
@@ -84,7 +71,7 @@ public void testSimpleUpdate() {
@Test
public void testUpdateWithEntity() {
// Given & When
- final T docView = updateWithEntity();
+ final UpdatableDocumentEntityView docView = updateWithEntity();
// Then
// Nothing to do here as the responsiblePerson is not updatable
@@ -95,7 +82,7 @@ public void testUpdateWithEntity() {
@Test
public void testUpdateWithModifyEntity() {
// Given & When
- final T docView = updateWithModifyEntity();
+ final UpdatableDocumentEntityView docView = updateWithModifyEntity();
// Then
// Nothing to do here as the responsiblePerson is not updatable
@@ -106,7 +93,7 @@ public void testUpdateWithModifyEntity() {
@Test
public void testUpdateWithModifyExisting() {
// Given & When
- final T docView = updateWithModifyExisting();
+ final UpdatableDocumentEntityView docView = updateWithModifyExisting();
// Then
// Nothing to do here as the responsiblePerson is not updatable
@@ -117,7 +104,7 @@ public void testUpdateWithModifyExisting() {
@Test
public void testUpdateToNull() {
// Given & When
- final T docView = updateToNull();
+ final UpdatableDocumentEntityView docView = updateToNull();
// Then
// Nothing to do here as the responsiblePerson is not updatable
@@ -128,7 +115,7 @@ public void testUpdateToNull() {
@Test
public void testUpdateToNewPerson() {
// Given & When
- final T docView = updateToNewPerson();
+ final UpdatableDocumentEntityView docView = updateToNewPerson();
// Then
// Nothing to do here as the responsiblePerson is not updatable
@@ -136,9 +123,15 @@ public void testUpdateToNewPerson() {
assertEquals(p1.getId(), doc1.getResponsiblePerson().getId());
}
+ @Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
.fetching(Document.class)
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.update(Document.class);
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityView.java
deleted file mode 100644
index 374077d2d8..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 7fb724c9eb..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 4cfc0b1a7b..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/FullUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityView.java
deleted file mode 100644
index 3f8ff8f40a..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 8ecaa44f8e..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index ac5f727e9f..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/LazyUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityView.java
deleted file mode 100644
index a7be4e3f54..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 91abcd4e24..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 7e0770ac6f..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/PartialUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.creatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityView.java
index 392ab7e060..2c3f0e2d62 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityView extends UpdatableDocumentEntityViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithCollectionsView.java
index 3bd8947d4a..4654110d88 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithCollectionsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithMapsView.java
index bd355c8e5c..7f88d7fda1 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/creatableonly/model/UpdatableDocumentEntityWithMapsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityViewBase.java
index 080bec9457..03a919fb5e 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityViewBase.java
@@ -16,16 +16,21 @@
package com.blazebit.persistence.view.testsuite.update.entity.model;
+import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
import java.util.Date;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentEntityViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithCollectionsViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithCollectionsViewBase.java
index 7b03e63f46..b7903f97a4 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithCollectionsViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithCollectionsViewBase.java
@@ -16,16 +16,21 @@
package com.blazebit.persistence.view.testsuite.update.entity.model;
+import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
import java.util.List;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentEntityWithCollectionsViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithMapsViewBase.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithMapsViewBase.java
index 95fdd50490..bbf61670ea 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithMapsViewBase.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/model/UpdatableDocumentEntityWithMapsViewBase.java
@@ -16,17 +16,21 @@
package com.blazebit.persistence.view.testsuite.update.entity.model;
+import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
-import java.util.List;
import java.util.Map;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentEntityWithMapsViewBase {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityCollectionsTest.java
index 76ad2ed84e..2b68679fcb 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityCollectionsTest.java
@@ -21,18 +21,15 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityCollectionsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.FullUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.LazyUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.PartialUpdatableDocumentEntityWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.UpdatableDocumentEntityWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.Iterator;
import static org.junit.Assert.assertEquals;
@@ -41,30 +38,21 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
+public class EntityViewUpdateMutableEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
- public EntityViewUpdateMutableEntityCollectionsTest(Class viewType) {
- super(viewType);
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithCollectionsView.class },
- { PartialUpdatableDocumentEntityWithCollectionsView.class },
- { FullUpdatableDocumentEntityWithCollectionsView.class }
- });
+ public EntityViewUpdateMutableEntityCollectionsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithCollectionsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = replaceCollection();
// Then
// Since entities are mutable, assert that the document and the people are loaded always loaded.
@@ -82,7 +70,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -104,7 +92,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -126,7 +114,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -151,7 +139,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -176,7 +164,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -197,7 +185,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNullToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -226,7 +214,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithCollectionsView docView = setCollectionToNull();
// Then
// Assert that only the document is loaded
@@ -258,7 +246,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNewEntityToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -296,6 +284,12 @@ public void testUpdateAddNewEntityToCollection() {
}
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityMapsTest.java
index fee99dcf69..de39e6cac8 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityMapsTest.java
@@ -21,50 +21,36 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityMapsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.FullUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.LazyUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.PartialUpdatableDocumentEntityWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.UpdatableDocumentEntityWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
-
- public EntityViewUpdateMutableEntityMapsTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateMutableEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithMapsView.class },
- { PartialUpdatableDocumentEntityWithMapsView.class },
- { FullUpdatableDocumentEntityWithMapsView.class }
- });
+ public EntityViewUpdateMutableEntityMapsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithMapsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithMapsView docView = replaceCollection();
// Then
// Since entities are mutable, assert that the document and the people are loaded always loaded.
@@ -82,7 +68,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -104,7 +90,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -126,7 +112,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -151,7 +137,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -176,7 +162,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithMapsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -197,7 +183,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNullToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -226,7 +212,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithMapsView docView = setCollectionToNull();
// Then
// Assert that only the document is loaded
@@ -258,7 +244,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNewEntityToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -287,6 +273,12 @@ public void testUpdateAddNewEntityToCollection() {
assertEquals(doc1.getContacts(), docView.getContacts());
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityTest.java
index e9e17e41ba..f27be03e71 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/EntityViewUpdateMutableEntityTest.java
@@ -21,49 +21,36 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.FullUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.LazyUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.PartialUpdatableDocumentEntityView;
+import com.blazebit.persistence.view.testsuite.update.entity.mutable.model.UpdatableDocumentEntityView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableEntityTest extends AbstractEntityViewUpdateEntityTest {
-
- public EntityViewUpdateMutableEntityTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateMutableEntityTest extends AbstractEntityViewUpdateEntityTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityView.class },
- { PartialUpdatableDocumentEntityView.class },
- { FullUpdatableDocumentEntityView.class }
- });
+ public EntityViewUpdateMutableEntityTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityView.class);
}
@Test
public void testSimpleUpdate() {
// Given & When
- final T docView = simpleUpdate();
+ final UpdatableDocumentEntityView docView = simpleUpdate();
// Then
// Assert that not only the document is loaded, but also always the responsiblePerson
@@ -71,15 +58,35 @@ public void testSimpleUpdate() {
// but since we don't know if entities are dirty, we need to be conservative and load the object
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (isQueryStrategy()) {
+ builder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ } else {
+ fullFetch(builder);
+ }
- builder.update(Document.class)
- .validate();
+ builder.update(Document.class);
+ builder.validate();
// Unfortunately, even after an update, we have to reload the entity to merge again
- assertQueriesAfterUpdate(docView)
- .assertSelect().fetching(Document.class, Person.class)
- .validate();
+ AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
+
+ if (isQueryStrategy()) {
+ afterBuilder.assertSelect()
+ .fetching(Person.class)
+ .and();
+
+ if (isFullMode()) {
+ afterBuilder.update(Document.class);
+ }
+ } else {
+ afterBuilder.assertSelect()
+ .fetching(Document.class, Person.class)
+ .and();
+ }
+
+ afterBuilder.validate();
assertEquals("newDoc", docView.getName());
assertEquals(doc1.getName(), docView.getName());
}
@@ -87,17 +94,19 @@ public void testSimpleUpdate() {
@Test
public void testUpdateWithEntity() {
// Given & When
- final T docView = updateWithEntity();
+ final UpdatableDocumentEntityView docView = updateWithEntity();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// Unfortunately, the new responsiblePerson has to be loaded by the JPA provider since it has to be merged
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.select(Person.class)
@@ -105,9 +114,17 @@ public void testUpdateWithEntity() {
.validate();
// Unfortunately, even after an update, we have to reload the entity to merge again
- assertQueriesAfterUpdate(docView)
- .assertSelect().fetching(Document.class, Person.class)
- .validate();
+ AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
+
+ if (isQueryStrategy()) {
+ builder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ } else {
+ afterBuilder.assertSelect()
+ .fetching(Document.class, Person.class)
+ .validate();
+ }
assertEquals(p2.getId(), docView.getResponsiblePerson().getId());
assertEquals(doc1.getResponsiblePerson().getId(), docView.getResponsiblePerson().getId());
}
@@ -115,17 +132,19 @@ public void testUpdateWithEntity() {
@Test
public void testUpdateWithModifyEntity() {
// Given & When
- final T docView = updateWithModifyEntity();
+ final UpdatableDocumentEntityView docView = updateWithModifyEntity();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// Unfortunately, the new responsiblePerson has to be loaded by the JPA provider since it has to be merged
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.select(Person.class)
@@ -133,10 +152,20 @@ public void testUpdateWithModifyEntity() {
.update(Person.class)
.validate();
- // Unfortunately, even after an update, we have to reload the entity to merge again
- assertQueriesAfterUpdate(docView)
- .assertSelect().fetching(Document.class, Person.class)
- .validate();
+
+ AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
+
+ if (isQueryStrategy()) {
+ afterBuilder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ } else {
+ // Unfortunately, even after an update, we have to reload the entity to merge again
+ afterBuilder.assertSelect()
+ .fetching(Document.class, Person.class)
+ .and();
+ }
+
assertEquals(p2.getId(), docView.getResponsiblePerson().getId());
assertEquals(doc1.getResponsiblePerson().getId(), docView.getResponsiblePerson().getId());
assertEquals("newOwner", doc1.getResponsiblePerson().getName());
@@ -145,21 +174,48 @@ public void testUpdateWithModifyEntity() {
@Test
public void testUpdateWithModifyExisting() {
// Given & When
- final T docView = updateWithModifyExisting();
+ final UpdatableDocumentEntityView docView = updateWithModifyExisting();
// Then
// Since we update the old responsiblePerson, load it along with the document for updating it later
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (isQueryStrategy()) {
+ builder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ } else {
+ fullFetch(builder);
+ }
- builder.update(Person.class)
- .validate();
+ if (isQueryStrategy() && isFullMode()) {
+ builder.update(Document.class);
+ }
- // Unfortunately, even after an update, we have to reload the entity to merge again
- assertQueriesAfterUpdate(docView)
- .assertSelect().fetching(Document.class, Person.class)
- .validate();
+ builder.update(Person.class);
+
+ builder.validate();
+
+ AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
+
+ if (isQueryStrategy()) {
+ afterBuilder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ } else {
+ // Unfortunately, even after an update, we have to reload the entity to merge again
+ afterBuilder.assertSelect()
+ .fetching(Document.class, Person.class)
+ .and();
+ }
+
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ afterBuilder.update(Document.class);
+ }
+ }
+
+ afterBuilder.validate();
assertEquals(doc1.getResponsiblePerson().getId(), docView.getResponsiblePerson().getId());
assertEquals("newOwner", doc1.getResponsiblePerson().getName());
}
@@ -167,17 +223,19 @@ public void testUpdateWithModifyExisting() {
@Test
public void testUpdateToNull() {
// Given & When
- final T docView = updateToNull();
+ final UpdatableDocumentEntityView docView = updateToNull();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// Since the new responsiblePerson is null, we don't need to do anything further
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.update(Document.class)
@@ -186,8 +244,14 @@ public void testUpdateToNull() {
// Updating to null thankfully does not require reloading the relation
AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
- if (isFullMode()) {
- fullFetch(afterBuilder);
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ afterBuilder.update(Document.class);
+ }
+ } else {
+ if (isFullMode()) {
+ fullFetch(afterBuilder);
+ }
}
afterBuilder.validate();
assertNull(doc1.getResponsiblePerson());
@@ -196,17 +260,19 @@ public void testUpdateToNull() {
@Test
public void testUpdateToNewPerson() {
// Given & When
- final T docView = updateToNewPerson();
+ final UpdatableDocumentEntityView docView = updateToNewPerson();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// The new responsiblePerson will be persisted
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.insert(Person.class)
@@ -216,9 +282,15 @@ public void testUpdateToNewPerson() {
// We always have to do a full fetch because the entity might be dirty
AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
+ if (isQueryStrategy()) {
+ afterBuilder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ } else {
+ fullFetch(afterBuilder);
+ }
// Unfortunately, Hibernate has to fetch all non-inverse collections and merge changes
- fullFetch(afterBuilder)
- .assertSelect()
+ afterBuilder.assertSelect()
.fetching(Person.class, "favoriteDocuments")
.fetching(Document.class)
.and()
@@ -226,14 +298,31 @@ public void testUpdateToNewPerson() {
.fetching(Person.class, "localized")
.and();
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ afterBuilder.update(Document.class);
+ }
+ }
+
afterBuilder.validate();
assertEquals("newPerson", doc1.getResponsiblePerson().getName());
}
+ @Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
.fetching(Document.class)
.fetching(Person.class)
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.assertUpdate()
+ .forEntity(Document.class)
+ .and()
+ .assertUpdate()
+ .forEntity(Person.class)
+ .and();
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityView.java
deleted file mode 100644
index 173b5be815..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index d3bf500a77..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 6d13cf1c95..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/FullUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityView.java
deleted file mode 100644
index fe522ce952..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index b5f302d0e1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index ccb4f9ee7d..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/LazyUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityView.java
deleted file mode 100644
index a9ae7f2625..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index bb421f0967..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 12f782864f..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/PartialUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutable.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityView.java
index db5acf5846..502c722644 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityView.java
@@ -24,7 +24,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityView extends UpdatableDocumentEntityViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithCollectionsView.java
index 02ea405211..da5204a365 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithCollectionsView.java
@@ -18,7 +18,6 @@
import com.blazebit.persistence.testsuite.entity.Person;
import com.blazebit.persistence.view.CascadeType;
-import com.blazebit.persistence.view.IdMapping;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
@@ -27,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithMapsView.java
index 5913bb52e8..a2c0f19c68 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutable/model/UpdatableDocumentEntityWithMapsView.java
@@ -21,13 +21,12 @@
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
-import java.util.List;
import java.util.Map;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityCollectionsTest.java
index d7a85c12be..25633c17b3 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityCollectionsTest.java
@@ -21,50 +21,37 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityCollectionsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.FullUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.LazyUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.PartialUpdatableDocumentEntityWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.UpdatableDocumentEntityWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.Iterator;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableOnlyEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
+public class EntityViewUpdateMutableOnlyEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
- public EntityViewUpdateMutableOnlyEntityCollectionsTest(Class viewType) {
- super(viewType);
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithCollectionsView.class },
- { PartialUpdatableDocumentEntityWithCollectionsView.class },
- { FullUpdatableDocumentEntityWithCollectionsView.class }
- });
+ public EntityViewUpdateMutableOnlyEntityCollectionsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithCollectionsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = replaceCollection();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -76,7 +63,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollection();
// Then
// The changes to the collection are not propagated, yet the elements are merged
@@ -95,7 +82,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollection();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -107,7 +94,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollectionAndModifyEntity();
// Then
// The changes to the collection are not propagated, yet the elements are merged
@@ -127,7 +114,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollectionAndModifyEntity();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -140,7 +127,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -161,7 +148,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNullToCollection();
// Then
// The changes to the collection are not propagated, yet we load the full document since we don't know what has been added to the collection
@@ -179,7 +166,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithCollectionsView docView = setCollectionToNull();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -191,7 +178,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNewEntityToCollection();
// Then
// The changes to the collection are not propagated, yet the elements are merged
@@ -215,6 +202,12 @@ public void testUpdateAddNewEntityToCollection() {
}
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityMapsTest.java
index 0c88c155b6..12ff0b79c7 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityMapsTest.java
@@ -21,49 +21,35 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityMapsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.FullUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.LazyUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.PartialUpdatableDocumentEntityWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.UpdatableDocumentEntityWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-
import static org.junit.Assert.assertEquals;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableOnlyEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
-
- public EntityViewUpdateMutableOnlyEntityMapsTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateMutableOnlyEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithMapsView.class },
- { PartialUpdatableDocumentEntityWithMapsView.class },
- { FullUpdatableDocumentEntityWithMapsView.class }
- });
+ public EntityViewUpdateMutableOnlyEntityMapsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithMapsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithMapsView docView = replaceCollection();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -75,7 +61,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollection();
// Then
// The changes to the collection are not propagated, yet the elements are merged
@@ -94,7 +80,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollection();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -106,7 +92,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollectionAndModifyEntity();
// Then
// The changes to the collection are not propagated, yet the elements are merged
@@ -126,7 +112,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollectionAndModifyEntity();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -139,7 +125,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithMapsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -160,7 +146,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNullToCollection();
// Then
// The changes to the collection are not propagated, yet we load the full document since we don't know what has been added to the collection
@@ -178,7 +164,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithMapsView docView = setCollectionToNull();
// Then
// Since the collection changed yet this relation is not updatable, only the full mode will load
@@ -190,7 +176,7 @@ public void testUpdateSetCollectionToNull() {
@Test
public void testUpdateAddNewEntityToCollection() {
// Given & When
- final T docView = addNewEntityToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNewEntityToCollection();
// Then
// The changes to the collection are not propagated, yet the elements are merged
@@ -206,6 +192,12 @@ public void testUpdateAddNewEntityToCollection() {
assertEquals(p1.getId(), doc1.getContacts().get(1).getId());
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityTest.java
index 32904b3d9c..9aebbaa19d 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/EntityViewUpdateMutableOnlyEntityTest.java
@@ -21,49 +21,35 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.FullUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.LazyUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.PartialUpdatableDocumentEntityView;
+import com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model.UpdatableDocumentEntityView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
-
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateMutableOnlyEntityTest extends AbstractEntityViewUpdateEntityTest {
-
- public EntityViewUpdateMutableOnlyEntityTest(Class viewType) {
- super(viewType);
- }
+public class EntityViewUpdateMutableOnlyEntityTest extends AbstractEntityViewUpdateEntityTest {
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityView.class },
- { PartialUpdatableDocumentEntityView.class },
- { FullUpdatableDocumentEntityView.class }
- });
+ public EntityViewUpdateMutableOnlyEntityTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityView.class);
}
@Test
public void testSimpleUpdate() {
// Given & When
- final T docView = simpleUpdate();
+ final UpdatableDocumentEntityView docView = simpleUpdate();
// Then
// Assert that not only the document is loaded, but also always the responsiblePerson
@@ -71,15 +57,32 @@ public void testSimpleUpdate() {
// but since we don't know if entities are dirty, we need to be conservative and load the object
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (isQueryStrategy()) {
+ builder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ } else {
+ fullFetch(builder);
+ }
builder.update(Document.class)
.validate();
// Unfortunately, even after an update, we have to reload the entity to merge again
- assertQueriesAfterUpdate(docView)
- .assertSelect().fetching(Document.class, Person.class)
- .validate();
+ AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
+ if (isQueryStrategy()) {
+ afterBuilder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ if (isFullMode()) {
+ afterBuilder.update(Document.class);
+ }
+ } else {
+ afterBuilder.assertSelect()
+ .fetching(Document.class, Person.class)
+ .and();
+ }
+ afterBuilder.validate();
assertEquals("newDoc", docView.getName());
assertEquals(doc1.getName(), docView.getName());
}
@@ -87,7 +90,7 @@ public void testSimpleUpdate() {
@Test
public void testUpdateWithEntity() {
// Given & When
- final T docView = updateWithEntity();
+ final UpdatableDocumentEntityView docView = updateWithEntity();
// Then
// Since the responsiblePerson changed yet this relation is not updatable, only the full mode will load
@@ -100,7 +103,7 @@ public void testUpdateWithEntity() {
@Test
public void testUpdateWithModifyEntity() {
// Given & When
- final T docView = updateWithModifyEntity();
+ final UpdatableDocumentEntityView docView = updateWithModifyEntity();
// Then
// Since the responsiblePerson changed yet this relation is not updatable, only the full mode will load
@@ -116,21 +119,40 @@ public void testUpdateWithModifyEntity() {
@Test
public void testUpdateWithModifyExisting() {
// Given & When
- final T docView = updateWithModifyExisting();
+ final UpdatableDocumentEntityView docView = updateWithModifyExisting();
// Then
// Since we update the old responsiblePerson, load it along with the document for updating it later
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (isQueryStrategy()) {
+ builder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ if (isFullMode()) {
+ builder.update(Document.class);
+ }
+ } else {
+ fullFetch(builder);
+ }
builder.update(Person.class)
.validate();
- // Unfortunately, even after an update, we have to reload the entity to merge again
- assertQueriesAfterUpdate(docView)
- .assertSelect().fetching(Document.class, Person.class)
- .validate();
+ AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
+ if (isQueryStrategy()) {
+ afterBuilder.assertSelect()
+ .fetching(Person.class)
+ .and();
+ if (isFullMode()) {
+ afterBuilder.update(Document.class);
+ }
+ } else {
+ afterBuilder.assertSelect()
+ .fetching(Document.class, Person.class)
+ .and();
+ }
+ afterBuilder.validate();
assertEquals(doc1.getResponsiblePerson().getId(), docView.getResponsiblePerson().getId());
assertEquals("newOwner", doc1.getResponsiblePerson().getName());
}
@@ -138,7 +160,7 @@ public void testUpdateWithModifyExisting() {
@Test
public void testUpdateToNull() {
// Given & When
- final T docView = updateToNull();
+ final UpdatableDocumentEntityView docView = updateToNull();
// Then
// Since the responsiblePerson changed yet this relation is not updatable, only the full mode will load
@@ -151,7 +173,7 @@ public void testUpdateToNull() {
@Test
public void testUpdateToNewPerson() {
// Given & When
- final T docView = updateToNewPerson();
+ final UpdatableDocumentEntityView docView = updateToNewPerson();
// Then
// Since the responsiblePerson changed yet this relation is not updatable, only the full mode will load
@@ -168,4 +190,9 @@ protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
.fetching(Person.class)
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.update(Document.class);
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityView.java
deleted file mode 100644
index 4d1c580e7a..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 11528e79a4..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index c2d1356326..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/FullUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityView.java
deleted file mode 100644
index 06a2edbdac..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 06936c0dc1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 3afa3a4495..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/LazyUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityView.java
deleted file mode 100644
index 193e6a54e1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index 6dc8edf453..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 64bc62857b..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/PartialUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.mutableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityView.java
index 48b821f144..58a902ff89 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityView.java
@@ -18,16 +18,13 @@
import com.blazebit.persistence.testsuite.entity.Person;
import com.blazebit.persistence.view.CascadeType;
-import com.blazebit.persistence.view.IdMapping;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityViewBase;
-import java.util.Date;
-
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityView extends UpdatableDocumentEntityViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithCollectionsView.java
index b76e5cebbb..9b40b3a77a 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithCollectionsView.java
@@ -18,7 +18,6 @@
import com.blazebit.persistence.testsuite.entity.Person;
import com.blazebit.persistence.view.CascadeType;
-import com.blazebit.persistence.view.IdMapping;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
@@ -27,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithMapsView.java
index 85b5e61439..89292f11f4 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/mutableonly/model/UpdatableDocumentEntityWithMapsView.java
@@ -26,7 +26,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityCollectionsTest.java
index c6af298ece..4cde87b288 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityCollectionsTest.java
@@ -21,50 +21,37 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityCollectionsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithCollectionsViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.FullUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.LazyUpdatableDocumentEntityWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.PartialUpdatableDocumentEntityWithCollectionsView;
+import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.UpdatableDocumentEntityWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import javax.persistence.PersistenceException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
import static org.junit.Assert.*;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateUpdatableOnlyEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
+public class EntityViewUpdateUpdatableOnlyEntityCollectionsTest extends AbstractEntityViewUpdateEntityCollectionsTest {
- public EntityViewUpdateUpdatableOnlyEntityCollectionsTest(Class viewType) {
- super(viewType);
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithCollectionsView.class },
- { PartialUpdatableDocumentEntityWithCollectionsView.class },
- { FullUpdatableDocumentEntityWithCollectionsView.class }
- });
+ public EntityViewUpdateUpdatableOnlyEntityCollectionsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithCollectionsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = replaceCollection();
// Then
// Since entities are not mutable we can detect nothing changed
@@ -83,7 +70,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -108,7 +95,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollection();
// Then
// Assert that the document and the people are loaded in full mode i.e. a full fetch
@@ -144,7 +131,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -163,7 +150,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithCollectionsView docView = addToNewCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded in full mode i.e. a full fetch
@@ -200,7 +187,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded in full mode i.e. a full fetch
@@ -220,7 +207,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithCollectionsView docView = addNullToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -249,7 +236,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithCollectionsView docView = setCollectionToNull();
// Then
// Assert that only the document is loaded
@@ -295,6 +282,12 @@ public void testUpdateAddNewEntityToCollection() {
}
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityMapsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityMapsTest.java
index 0ffc5124a7..b9ec86434e 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityMapsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityMapsTest.java
@@ -21,49 +21,37 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityMapsTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.FullUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.LazyUpdatableDocumentEntityWithMapsView;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.PartialUpdatableDocumentEntityWithMapsView;
+import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.UpdatableDocumentEntityWithMapsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import javax.persistence.PersistenceException;
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.*;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateUpdatableOnlyEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
+public class EntityViewUpdateUpdatableOnlyEntityMapsTest extends AbstractEntityViewUpdateEntityMapsTest {
- public EntityViewUpdateUpdatableOnlyEntityMapsTest(Class viewType) {
- super(viewType);
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityWithMapsView.class },
- { PartialUpdatableDocumentEntityWithMapsView.class },
- { FullUpdatableDocumentEntityWithMapsView.class }
- });
+ public EntityViewUpdateUpdatableOnlyEntityMapsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityWithMapsView.class);
}
@Test
public void testUpdateReplaceCollection() {
// Given & When
- final T docView = replaceCollection();
+ final UpdatableDocumentEntityWithMapsView docView = replaceCollection();
// Then
// Since entities are not mutable we can detect nothing changed
@@ -82,7 +70,7 @@ public void testUpdateReplaceCollection() {
@Test
public void testUpdateAddToCollection() {
// Given & When
- final T docView = addToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -107,7 +95,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given & When
- final T docView = addToNewCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollection();
// Then
// Assert that the document and the people are loaded in full mode i.e. a full fetch
@@ -143,7 +131,7 @@ public void testUpdateAddToNewCollection() {
@Test
public void testUpdateAddToCollectionAndModifyEntity() {
// Given & When
- final T docView = addToCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -162,7 +150,7 @@ public void testUpdateAddToCollectionAndModifyEntity() {
@Test
public void testUpdateAddToNewCollectionAndModifyEntity() {
// Given & When
- final T docView = addToNewCollectionAndModifyEntity();
+ final UpdatableDocumentEntityWithMapsView docView = addToNewCollectionAndModifyEntity();
// Then
// Assert that the document and the people are loaded in full mode i.e. a full fetch
@@ -199,7 +187,7 @@ public void testUpdateAddToNewCollectionAndModifyEntity() {
@Test
public void testUpdateModifyEntityInCollection() {
// Given & When
- final T docView = modifyEntityInCollection();
+ final UpdatableDocumentEntityWithMapsView docView = modifyEntityInCollection();
// Then
// Assert that the document and the people are loaded in full mode i.e. a full fetch
@@ -219,7 +207,7 @@ public void testUpdateModifyEntityInCollection() {
@Test
public void testUpdateAddNullToCollection() {
// Given & When
- final T docView = addNullToCollection();
+ final UpdatableDocumentEntityWithMapsView docView = addNullToCollection();
// Then
// Assert that the document and the people are loaded i.e. a full fetch
@@ -248,7 +236,7 @@ public void testUpdateAddNullToCollection() {
@Test
public void testUpdateSetCollectionToNull() {
// Given & When
- final T docView = setCollectionToNull();
+ final UpdatableDocumentEntityWithMapsView docView = setCollectionToNull();
// Then
// Assert that only the document is loaded
@@ -294,6 +282,12 @@ public void testUpdateAddNewEntityToCollection() {
}
}
+ @Override
+ protected boolean isQueryStrategy() {
+ // Collection changes always need to be applied on the entity model, can't do that via a query
+ return false;
+ }
+
@Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityTest.java
index 41faeb5c8b..922d5bf3f7 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/EntityViewUpdateUpdatableOnlyEntityTest.java
@@ -20,56 +20,45 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.entity.AbstractEntityViewUpdateEntityTest;
-import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityViewBase;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.FullUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.LazyUpdatableDocumentEntityView;
-import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.PartialUpdatableDocumentEntityView;
+import com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model.UpdatableDocumentEntityView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import javax.persistence.PersistenceException;
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.*;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateUpdatableOnlyEntityTest extends AbstractEntityViewUpdateEntityTest {
+public class EntityViewUpdateUpdatableOnlyEntityTest extends AbstractEntityViewUpdateEntityTest {
- public EntityViewUpdateUpdatableOnlyEntityTest(Class viewType) {
- super(viewType);
- }
-
- @Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentEntityView.class },
- { PartialUpdatableDocumentEntityView.class },
- { FullUpdatableDocumentEntityView.class }
- });
+ public EntityViewUpdateUpdatableOnlyEntityTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentEntityView.class);
}
@Test
public void testSimpleUpdate() {
// Given & When
- final T docView = simpleUpdate();
+ final UpdatableDocumentEntityView docView = simpleUpdate();
// Then
// Assert that not only the document is loaded
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
builder.update(Document.class)
.validate();
@@ -82,12 +71,16 @@ public void testSimpleUpdate() {
@Test
public void testUpdateWithEntity() {
// Given & When
- final T docView = updateWithEntity();
+ final UpdatableDocumentEntityView docView = updateWithEntity();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
+
builder.update(Document.class)
.validate();
@@ -99,12 +92,16 @@ public void testUpdateWithEntity() {
@Test
public void testUpdateWithModifyEntity() {
// Given & When
- final T docView = updateWithModifyEntity();
+ final UpdatableDocumentEntityView docView = updateWithModifyEntity();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
+
builder.update(Document.class)
.validate();
@@ -118,14 +115,20 @@ public void testUpdateWithModifyEntity() {
@Test
public void testUpdateWithModifyExisting() {
// Given & When
- final T docView = updateWithModifyExisting();
+ final UpdatableDocumentEntityView docView = updateWithModifyExisting();
// Then
// Since updates aren't cascaded, the responsiblePerson does not need to be loaded
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ fullUpdate(builder);
+ }
+ } else {
+ if (isFullMode()) {
+ fullFetch(builder);
+ }
}
builder.validate();
@@ -138,14 +141,16 @@ public void testUpdateWithModifyExisting() {
@Test
public void testUpdateToNull() {
// Given & When
- final T docView = updateToNull();
+ final UpdatableDocumentEntityView docView = updateToNull();
// Then
// Since the responsiblePerson changed we don't need to load the old responsiblePerson
// Since the new responsiblePerson is null, we don't need to do anything further
AssertStatementBuilder builder = assertQuerySequence();
- fullFetch(builder);
+ if (!isQueryStrategy()) {
+ fullFetch(builder);
+ }
builder.update(Document.class)
.validate();
@@ -153,8 +158,14 @@ public void testUpdateToNull() {
// Updating to null thankfully does not require reloading the relation
AssertStatementBuilder afterBuilder = assertQueriesAfterUpdate(docView);
- if (isFullMode()) {
- fullFetch(afterBuilder);
+ if (isQueryStrategy()) {
+ if (isFullMode()) {
+ fullUpdate(afterBuilder);
+ }
+ } else {
+ if (isFullMode()) {
+ fullFetch(afterBuilder);
+ }
}
afterBuilder.validate();
assertNull(doc1.getResponsiblePerson());
@@ -164,17 +175,19 @@ public void testUpdateToNull() {
public void testUpdateToNewPerson() {
try {
// Given & When
- final T docView = updateToNewPerson();
+ final UpdatableDocumentEntityView docView = updateToNewPerson();
fail("Expected a transient reference error for the new person!");
} catch (PersistenceException | IllegalStateException ex) {
// Then
assertTrue(ex.getMessage().contains("transient"));
AssertStatementBuilder builder = assertQuerySequence();
- if (isFullMode()) {
- fullFetch(builder);
- } else {
- builder.select(Document.class);
+ if (!isQueryStrategy()) {
+ if (isFullMode()) {
+ fullFetch(builder);
+ } else {
+ builder.select(Document.class);
+ }
}
builder.validate();
@@ -183,9 +196,15 @@ public void testUpdateToNewPerson() {
}
}
+ @Override
protected AssertStatementBuilder fullFetch(AssertStatementBuilder builder) {
return builder.assertSelect()
.fetching(Document.class)
.and();
}
+
+ @Override
+ protected AssertStatementBuilder fullUpdate(AssertStatementBuilder builder) {
+ return builder.update(Document.class);
+ }
}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityView.java
deleted file mode 100644
index 332e0e6099..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index a6b7b084c9..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index dd9c2406d2..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/FullUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityView.java
deleted file mode 100644
index 8bb46fb233..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index e422fb7e63..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 52fe88a443..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/LazyUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityView.java
deleted file mode 100644
index 1fd7a18b41..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityView extends UpdatableDocumentEntityView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java
deleted file mode 100644
index a912c885c9..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityWithMapsView.java
deleted file mode 100644
index 0aa7729af6..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/PartialUpdatableDocumentEntityWithMapsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityView.java
index af58b321cb..ac3eb10da9 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityView.java
@@ -23,7 +23,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityView extends UpdatableDocumentEntityViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithCollectionsView.java
index 4bc9846d0d..ac47bddf1f 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithCollectionsView.java
@@ -25,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithCollectionsView extends UpdatableDocumentEntityWithCollectionsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithMapsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithMapsView.java
index c6fe8dda2e..60efc39290 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithMapsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/entity/updatableonly/model/UpdatableDocumentEntityWithMapsView.java
@@ -17,7 +17,6 @@
package com.blazebit.persistence.view.testsuite.update.entity.updatableonly.model;
import com.blazebit.persistence.testsuite.entity.Person;
-import com.blazebit.persistence.view.CascadeType;
import com.blazebit.persistence.view.UpdatableMapping;
import com.blazebit.persistence.view.testsuite.update.entity.model.UpdatableDocumentEntityWithMapsViewBase;
@@ -26,7 +25,7 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
public interface UpdatableDocumentEntityWithMapsView extends UpdatableDocumentEntityWithMapsViewBase {
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackCollectionsTest.java
index d6a2bedaa6..e89b183369 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackCollectionsTest.java
@@ -20,10 +20,9 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
-import com.blazebit.persistence.view.testsuite.update.rollback.model.FullUpdatableDocumentRollbackWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.rollback.model.LazyUpdatableDocumentRollbackWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.rollback.model.PartialUpdatableDocumentRollbackWithCollectionsView;
import com.blazebit.persistence.view.testsuite.update.rollback.model.UpdatableDocumentRollbackWithCollectionsView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -31,38 +30,32 @@
import org.junit.runners.Parameterized;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
import static org.junit.Assert.assertEquals;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateRollbackCollectionsTest extends AbstractEntityViewUpdateTest {
+public class EntityViewUpdateRollbackCollectionsTest extends AbstractEntityViewUpdateTest {
- public EntityViewUpdateRollbackCollectionsTest(Class viewType) {
- super(viewType);
+ public EntityViewUpdateRollbackCollectionsTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentRollbackWithCollectionsView.class);
}
@Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentRollbackWithCollectionsView.class },
- { PartialUpdatableDocumentRollbackWithCollectionsView.class },
- { FullUpdatableDocumentRollbackWithCollectionsView.class }
- });
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
@Test
public void testUpdateAddToCollection() {
// Given
- final T docView = getDoc1View();
+ final UpdatableDocumentRollbackWithCollectionsView docView = getDoc1View();
clearQueries();
// When 1
@@ -94,7 +87,7 @@ public void testUpdateAddToCollection() {
@Test
public void testUpdateAddToNewCollection() {
// Given
- final T docView = getDoc1View();
+ final UpdatableDocumentRollbackWithCollectionsView docView = getDoc1View();
clearQueries();
// When
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackTest.java
index 3c03cc5b5b..b7efcdb1f2 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/EntityViewUpdateRollbackTest.java
@@ -20,18 +20,15 @@
import com.blazebit.persistence.testsuite.base.category.NoDatanucleus;
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
-import com.blazebit.persistence.view.testsuite.update.rollback.model.FullUpdatableDocumentRollbackView;
-import com.blazebit.persistence.view.testsuite.update.rollback.model.LazyUpdatableDocumentRollbackView;
-import com.blazebit.persistence.view.testsuite.update.rollback.model.PartialUpdatableDocumentRollbackView;
import com.blazebit.persistence.view.testsuite.update.rollback.model.UpdatableDocumentRollbackView;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.Date;
import static org.junit.Assert.assertEquals;
@@ -39,30 +36,26 @@
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateRollbackTest extends AbstractEntityViewUpdateTest {
+public class EntityViewUpdateRollbackTest extends AbstractEntityViewUpdateTest {
- public EntityViewUpdateRollbackTest(Class viewType) {
- super(viewType);
+ public EntityViewUpdateRollbackTest(FlushMode mode, FlushStrategy strategy) {
+ super(mode, strategy, UpdatableDocumentRollbackView.class);
}
@Parameterized.Parameters
- public static Collection> entityViewCombinations() {
- return Arrays.asList(new Object[][]{
- { LazyUpdatableDocumentRollbackView.class },
- { PartialUpdatableDocumentRollbackView.class },
- { FullUpdatableDocumentRollbackView.class }
- });
+ public static Object[][] combinations() {
+ return MODE_STRATEGY_COMBINATIONS;
}
@Test
public void testUpdateRollbacked() {
// Given
- final T docView = getDoc1View();
+ final UpdatableDocumentRollbackView docView = getDoc1View();
// When 1
docView.setName("newDoc");
@@ -85,7 +78,7 @@ public void testUpdateRollbacked() {
@Test
public void testModifyAndUpdateRollbacked() {
// Given
- final T docView = getDoc1View();
+ final UpdatableDocumentRollbackView docView = getDoc1View();
// When
docView.setName("newDoc");
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/FullUpdatableDocumentRollbackView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/FullUpdatableDocumentRollbackView.java
deleted file mode 100644
index 65b581e624..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/FullUpdatableDocumentRollbackView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.rollback.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentRollbackView extends UpdatableDocumentRollbackView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/FullUpdatableDocumentRollbackWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/FullUpdatableDocumentRollbackWithCollectionsView.java
deleted file mode 100644
index 96d18030c1..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/FullUpdatableDocumentRollbackWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.rollback.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.FULL)
-@EntityView(Document.class)
-public interface FullUpdatableDocumentRollbackWithCollectionsView extends UpdatableDocumentRollbackWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/LazyUpdatableDocumentRollbackView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/LazyUpdatableDocumentRollbackView.java
deleted file mode 100644
index 15cafd2549..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/LazyUpdatableDocumentRollbackView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.rollback.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentRollbackView extends UpdatableDocumentRollbackView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/LazyUpdatableDocumentRollbackWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/LazyUpdatableDocumentRollbackWithCollectionsView.java
deleted file mode 100644
index bcf36ff81d..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/LazyUpdatableDocumentRollbackWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.rollback.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.LAZY)
-@EntityView(Document.class)
-public interface LazyUpdatableDocumentRollbackWithCollectionsView extends UpdatableDocumentRollbackWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/PartialUpdatableDocumentRollbackView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/PartialUpdatableDocumentRollbackView.java
deleted file mode 100644
index e672762f9e..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/PartialUpdatableDocumentRollbackView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.rollback.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentRollbackView extends UpdatableDocumentRollbackView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/PartialUpdatableDocumentRollbackWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/PartialUpdatableDocumentRollbackWithCollectionsView.java
deleted file mode 100644
index 9bd03b92f8..0000000000
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/PartialUpdatableDocumentRollbackWithCollectionsView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2014 - 2017 Blazebit.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.blazebit.persistence.view.testsuite.update.rollback.model;
-
-import com.blazebit.persistence.testsuite.entity.Document;
-import com.blazebit.persistence.view.EntityView;
-import com.blazebit.persistence.view.FlushMode;
-import com.blazebit.persistence.view.UpdatableEntityView;
-
-/**
- *
- * @author Christian Beikov
- * @since 1.1.0
- */
-@UpdatableEntityView(mode = FlushMode.PARTIAL)
-@EntityView(Document.class)
-public interface PartialUpdatableDocumentRollbackWithCollectionsView extends UpdatableDocumentRollbackWithCollectionsView {
-
-}
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackView.java
index d736bac515..af9ed7ad77 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackView.java
@@ -16,15 +16,20 @@
package com.blazebit.persistence.view.testsuite.update.rollback.model;
+import com.blazebit.persistence.testsuite.entity.Document;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
import java.util.Date;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentRollbackView {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackWithCollectionsView.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackWithCollectionsView.java
index 05d02c5b44..f7f5489001 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackWithCollectionsView.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/rollback/model/UpdatableDocumentRollbackWithCollectionsView.java
@@ -16,15 +16,20 @@
package com.blazebit.persistence.view.testsuite.update.rollback.model;
+import com.blazebit.persistence.testsuite.entity.Document;
+import com.blazebit.persistence.view.EntityView;
import com.blazebit.persistence.view.IdMapping;
+import com.blazebit.persistence.view.UpdatableEntityView;
import java.util.List;
/**
*
* @author Christian Beikov
- * @since 1.1.0
+ * @since 1.2.0
*/
+@UpdatableEntityView
+@EntityView(Document.class)
public interface UpdatableDocumentRollbackWithCollectionsView {
@IdMapping("id")
diff --git a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/subview/simple/creatable/EntityViewUpdateSimpleCreatableSubviewCollectionsTest.java b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/subview/simple/creatable/EntityViewUpdateSimpleCreatableSubviewCollectionsTest.java
index 770d1f4030..fa45667649 100644
--- a/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/subview/simple/creatable/EntityViewUpdateSimpleCreatableSubviewCollectionsTest.java
+++ b/entity-view/testsuite/src/test/java/com/blazebit/persistence/view/testsuite/update/subview/simple/creatable/EntityViewUpdateSimpleCreatableSubviewCollectionsTest.java
@@ -21,17 +21,12 @@
import com.blazebit.persistence.testsuite.base.category.NoEclipselink;
import com.blazebit.persistence.testsuite.entity.Document;
import com.blazebit.persistence.testsuite.entity.Person;
+import com.blazebit.persistence.view.FlushMode;
+import com.blazebit.persistence.view.FlushStrategy;
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import com.blazebit.persistence.view.testsuite.update.AbstractEntityViewUpdateTest;
-import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.FullUpdatableDocumentView;
-import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.FullUpdatableDocumentWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.LazyUpdatableDocumentView;
-import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.LazyUpdatableDocumentWithCollectionsView;
-import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.PartialUpdatableDocumentView;
-import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.PartialUpdatableDocumentWithCollectionsView;
import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.PersonCreateView;
import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.PersonView;
-import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.UpdatableDocumentView;
import com.blazebit.persistence.view.testsuite.update.subview.simple.creatable.model.UpdatableDocumentWithCollectionsView;
import org.junit.Assert;
import org.junit.Test;
@@ -39,7 +34,6 @@
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.*;
@@ -52,19 +46,15 @@
@RunWith(Parameterized.class)
// NOTE: No Datanucleus support yet
@Category({ NoDatanucleus.class, NoEclipselink.class})
-public class EntityViewUpdateSimpleCreatableSubviewCollectionsTest extends AbstractEntityViewUpdateTest {
+public class EntityViewUpdateSimpleCreatableSubviewCollectionsTest extends AbstractEntityViewUpdateTest {
- public EntityViewUpdateSimpleCreatableSubviewCollectionsTest(Class