HHH-14450 - Drop ability to disable "enhanced proxies"
This commit is contained in:
parent
15caff9cbc
commit
611796c0fc
|
@ -65,7 +65,6 @@ import org.hibernate.tuple.entity.EntityTuplizer;
|
||||||
import org.hibernate.tuple.entity.EntityTuplizerFactory;
|
import org.hibernate.tuple.entity.EntityTuplizerFactory;
|
||||||
|
|
||||||
import static org.hibernate.cfg.AvailableSettings.ACQUIRE_CONNECTIONS;
|
import static org.hibernate.cfg.AvailableSettings.ACQUIRE_CONNECTIONS;
|
||||||
import static org.hibernate.cfg.AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY;
|
|
||||||
import static org.hibernate.cfg.AvailableSettings.ALLOW_JTA_TRANSACTION_ACCESS;
|
import static org.hibernate.cfg.AvailableSettings.ALLOW_JTA_TRANSACTION_ACCESS;
|
||||||
import static org.hibernate.cfg.AvailableSettings.ALLOW_REFRESH_DETACHED_ENTITY;
|
import static org.hibernate.cfg.AvailableSettings.ALLOW_REFRESH_DETACHED_ENTITY;
|
||||||
import static org.hibernate.cfg.AvailableSettings.ALLOW_UPDATE_OUTSIDE_TRANSACTION;
|
import static org.hibernate.cfg.AvailableSettings.ALLOW_UPDATE_OUTSIDE_TRANSACTION;
|
||||||
|
@ -197,7 +196,6 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
|
||||||
private boolean orderUpdatesEnabled;
|
private boolean orderUpdatesEnabled;
|
||||||
private boolean orderInsertsEnabled;
|
private boolean orderInsertsEnabled;
|
||||||
private boolean postInsertIdentifierDelayed;
|
private boolean postInsertIdentifierDelayed;
|
||||||
private boolean enhancementAsProxyEnabled;
|
|
||||||
private boolean collectionsInDefaultFetchGroupEnabled;
|
private boolean collectionsInDefaultFetchGroupEnabled;
|
||||||
|
|
||||||
// JPA callbacks
|
// JPA callbacks
|
||||||
|
@ -351,7 +349,6 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
|
||||||
this.defaultNullPrecedence = NullPrecedence.parse( defaultNullPrecedence );
|
this.defaultNullPrecedence = NullPrecedence.parse( defaultNullPrecedence );
|
||||||
this.orderUpdatesEnabled = ConfigurationHelper.getBoolean( ORDER_UPDATES, configurationSettings );
|
this.orderUpdatesEnabled = ConfigurationHelper.getBoolean( ORDER_UPDATES, configurationSettings );
|
||||||
this.orderInsertsEnabled = ConfigurationHelper.getBoolean( ORDER_INSERTS, configurationSettings );
|
this.orderInsertsEnabled = ConfigurationHelper.getBoolean( ORDER_INSERTS, configurationSettings );
|
||||||
this.enhancementAsProxyEnabled = ConfigurationHelper.getBoolean( ALLOW_ENHANCEMENT_AS_PROXY, configurationSettings );
|
|
||||||
|
|
||||||
this.callbacksEnabled = ConfigurationHelper.getBoolean( JPA_CALLBACKS_ENABLED, configurationSettings, true );
|
this.callbacksEnabled = ConfigurationHelper.getBoolean( JPA_CALLBACKS_ENABLED, configurationSettings, true );
|
||||||
|
|
||||||
|
@ -1063,11 +1060,6 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
|
||||||
return callbacksEnabled;
|
return callbacksEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEnhancementAsProxyEnabled() {
|
|
||||||
return enhancementAsProxyEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCollectionsInDefaultFetchGroupEnabled() {
|
public boolean isCollectionsInDefaultFetchGroupEnabled() {
|
||||||
return collectionsInDefaultFetchGroupEnabled;
|
return collectionsInDefaultFetchGroupEnabled;
|
||||||
|
|
|
@ -310,9 +310,12 @@ public interface SessionFactoryOptions {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Can bytecode-enhanced entity classes be used as a "proxy"?
|
* Can bytecode-enhanced entity classes be used as a "proxy"?
|
||||||
|
*
|
||||||
|
* @deprecated (since 5.5) use of enhanced proxies is always enabled
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
default boolean isEnhancementAsProxyEnabled() {
|
default boolean isEnhancementAsProxyEnabled() {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
default boolean isCollectionsInDefaultFetchGroupEnabled() {
|
default boolean isCollectionsInDefaultFetchGroupEnabled() {
|
||||||
|
|
|
@ -31,7 +31,6 @@ public class EnhancementHelper {
|
||||||
public static boolean includeInBaseFetchGroup(
|
public static boolean includeInBaseFetchGroup(
|
||||||
Property bootMapping,
|
Property bootMapping,
|
||||||
boolean isEnhanced,
|
boolean isEnhanced,
|
||||||
boolean allowEnhancementAsProxy,
|
|
||||||
boolean collectionsInDefaultFetchGroupEnabled) {
|
boolean collectionsInDefaultFetchGroupEnabled) {
|
||||||
final Value value = bootMapping.getValue();
|
final Value value = bootMapping.getValue();
|
||||||
|
|
||||||
|
@ -57,7 +56,16 @@ public class EnhancementHelper {
|
||||||
}
|
}
|
||||||
// include it in the base fetch group so long as the config allows
|
// include it in the base fetch group so long as the config allows
|
||||||
// using the FK to create an "enhancement proxy"
|
// using the FK to create an "enhancement proxy"
|
||||||
return allowEnhancementAsProxy;
|
//return allowEnhancementAsProxy;
|
||||||
|
// ^^ previously we had to explicitly enable use of enhanced proxies.
|
||||||
|
// for the moment just return `true` assuming we can.
|
||||||
|
//
|
||||||
|
// there are cases where this block overall misses quite a few cases
|
||||||
|
// where it returns the least optimal value. This is true even outside
|
||||||
|
// this enhanced-proxy point
|
||||||
|
//
|
||||||
|
// those will all be addressed in the commits for HHH-13658
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,6 @@ public class LazyAttributesMetadata implements Serializable {
|
||||||
public static LazyAttributesMetadata from(
|
public static LazyAttributesMetadata from(
|
||||||
PersistentClass mappedEntity,
|
PersistentClass mappedEntity,
|
||||||
boolean isEnhanced,
|
boolean isEnhanced,
|
||||||
boolean allowEnhancementAsProxy,
|
|
||||||
boolean collectionsInDefaultFetchGroupEnabled) {
|
boolean collectionsInDefaultFetchGroupEnabled) {
|
||||||
final Map<String, LazyAttributeDescriptor> lazyAttributeDescriptorMap = new LinkedHashMap<>();
|
final Map<String, LazyAttributeDescriptor> lazyAttributeDescriptorMap = new LinkedHashMap<>();
|
||||||
final Map<String, Set<String>> fetchGroupToAttributesMap = new HashMap<>();
|
final Map<String, Set<String>> fetchGroupToAttributesMap = new HashMap<>();
|
||||||
|
@ -48,7 +47,6 @@ public class LazyAttributesMetadata implements Serializable {
|
||||||
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
||||||
property,
|
property,
|
||||||
isEnhanced,
|
isEnhanced,
|
||||||
allowEnhancementAsProxy,
|
|
||||||
collectionsInDefaultFetchGroupEnabled
|
collectionsInDefaultFetchGroupEnabled
|
||||||
);
|
);
|
||||||
if ( lazy ) {
|
if ( lazy ) {
|
||||||
|
|
|
@ -890,7 +890,11 @@ public interface AvailableSettings extends org.hibernate.jpa.AvailableSettings {
|
||||||
* the results of those methods
|
* the results of those methods
|
||||||
*
|
*
|
||||||
* @implSpec See {@link org.hibernate.bytecode.enhance.spi.interceptor.EnhancementAsProxyLazinessInterceptor}
|
* @implSpec See {@link org.hibernate.bytecode.enhance.spi.interceptor.EnhancementAsProxyLazinessInterceptor}
|
||||||
|
*
|
||||||
|
* @deprecated (as of 5.5) with no replacement. When using enhancement based lazy loading
|
||||||
|
* using the enhanced class as proxy is always used when appropriate.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
String ALLOW_ENHANCEMENT_AS_PROXY = "hibernate.bytecode.allow_enhancement_as_proxy";
|
String ALLOW_ENHANCEMENT_AS_PROXY = "hibernate.bytecode.allow_enhancement_as_proxy";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -252,10 +252,6 @@ public class DefaultLoadEventListener implements LoadEventListener {
|
||||||
|
|
||||||
final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
|
final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
|
||||||
|
|
||||||
final boolean allowBytecodeProxy = factory
|
|
||||||
.getSessionFactoryOptions()
|
|
||||||
.isEnhancementAsProxyEnabled();
|
|
||||||
|
|
||||||
final EntityMetamodel entityMetamodel = persister.getEntityMetamodel();
|
final EntityMetamodel entityMetamodel = persister.getEntityMetamodel();
|
||||||
final boolean entityHasHibernateProxyFactory = entityMetamodel
|
final boolean entityHasHibernateProxyFactory = entityMetamodel
|
||||||
.getTuplizer()
|
.getTuplizer()
|
||||||
|
@ -263,7 +259,6 @@ public class DefaultLoadEventListener implements LoadEventListener {
|
||||||
|
|
||||||
// Check for the case where we can use the entity itself as a proxy
|
// Check for the case where we can use the entity itself as a proxy
|
||||||
if ( options.isAllowProxyCreation()
|
if ( options.isAllowProxyCreation()
|
||||||
&& allowBytecodeProxy
|
|
||||||
&& entityMetamodel.getBytecodeEnhancementMetadata().isEnhancedForLazyLoading() ) {
|
&& entityMetamodel.getBytecodeEnhancementMetadata().isEnhancedForLazyLoading() ) {
|
||||||
// if there is already a managed entity instance associated with the PC, return it
|
// if there is already a managed entity instance associated with the PC, return it
|
||||||
final Object managed = persistenceContext.getEntity( keyToLoad );
|
final Object managed = persistenceContext.getEntity( keyToLoad );
|
||||||
|
|
|
@ -364,8 +364,7 @@ public class DefaultMergeEventListener extends AbstractSaveEventListener impleme
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( incoming instanceof PersistentAttributeInterceptable
|
if ( incoming instanceof PersistentAttributeInterceptable
|
||||||
&& persister.getBytecodeEnhancementMetadata().isEnhancedForLazyLoading()
|
&& persister.getBytecodeEnhancementMetadata().isEnhancedForLazyLoading() ) {
|
||||||
&& source.getSessionFactory().getSessionFactoryOptions().isEnhancementAsProxyEnabled() ) {
|
|
||||||
|
|
||||||
final PersistentAttributeInterceptor incomingInterceptor = ( (PersistentAttributeInterceptable) incoming ).$$_hibernate_getInterceptor();
|
final PersistentAttributeInterceptor incomingInterceptor = ( (PersistentAttributeInterceptable) incoming ).$$_hibernate_getInterceptor();
|
||||||
final PersistentAttributeInterceptor managedInterceptor = ( (PersistentAttributeInterceptable) managed ).$$_hibernate_getInterceptor();
|
final PersistentAttributeInterceptor managedInterceptor = ( (PersistentAttributeInterceptable) managed ).$$_hibernate_getInterceptor();
|
||||||
|
|
|
@ -70,12 +70,10 @@ public class StatelessSessionImpl extends AbstractSharedSessionContract implemen
|
||||||
private final PersistenceContext temporaryPersistenceContext = new StatefulPersistenceContext( this );
|
private final PersistenceContext temporaryPersistenceContext = new StatefulPersistenceContext( this );
|
||||||
|
|
||||||
private final boolean connectionProvided;
|
private final boolean connectionProvided;
|
||||||
private final boolean allowBytecodeProxy;
|
|
||||||
|
|
||||||
public StatelessSessionImpl(SessionFactoryImpl factory, SessionCreationOptions options) {
|
public StatelessSessionImpl(SessionFactoryImpl factory, SessionCreationOptions options) {
|
||||||
super( factory, options );
|
super( factory, options );
|
||||||
connectionProvided = options.getConnection() != null;
|
connectionProvided = options.getConnection() != null;
|
||||||
allowBytecodeProxy = getFactory().getSessionFactoryOptions().isEnhancementAsProxyEnabled();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -306,7 +304,7 @@ public class StatelessSessionImpl extends AbstractSharedSessionContract implemen
|
||||||
|
|
||||||
final EntityMetamodel entityMetamodel = persister.getEntityMetamodel();
|
final EntityMetamodel entityMetamodel = persister.getEntityMetamodel();
|
||||||
final BytecodeEnhancementMetadata bytecodeEnhancementMetadata = entityMetamodel.getBytecodeEnhancementMetadata();
|
final BytecodeEnhancementMetadata bytecodeEnhancementMetadata = entityMetamodel.getBytecodeEnhancementMetadata();
|
||||||
if ( allowBytecodeProxy && bytecodeEnhancementMetadata.isEnhancedForLazyLoading() ) {
|
if ( bytecodeEnhancementMetadata.isEnhancedForLazyLoading() ) {
|
||||||
|
|
||||||
// if the entity defines a HibernateProxy factory, see if there is an
|
// if the entity defines a HibernateProxy factory, see if there is an
|
||||||
// existing proxy associated with the PC - and if so, use it
|
// existing proxy associated with the PC - and if so, use it
|
||||||
|
|
|
@ -62,9 +62,7 @@ import org.hibernate.engine.spi.SessionFactoryImplementor;
|
||||||
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
import org.hibernate.engine.spi.SharedSessionContractImplementor;
|
||||||
import org.hibernate.engine.spi.SubselectFetch;
|
import org.hibernate.engine.spi.SubselectFetch;
|
||||||
import org.hibernate.engine.spi.TypedValue;
|
import org.hibernate.engine.spi.TypedValue;
|
||||||
import org.hibernate.event.service.spi.EventListenerRegistry;
|
|
||||||
import org.hibernate.event.spi.EventSource;
|
import org.hibernate.event.spi.EventSource;
|
||||||
import org.hibernate.event.spi.EventType;
|
|
||||||
import org.hibernate.event.spi.PostLoadEvent;
|
import org.hibernate.event.spi.PostLoadEvent;
|
||||||
import org.hibernate.event.spi.PreLoadEvent;
|
import org.hibernate.event.spi.PreLoadEvent;
|
||||||
import org.hibernate.event.spi.PreLoadEventListener;
|
import org.hibernate.event.spi.PreLoadEventListener;
|
||||||
|
@ -115,13 +113,10 @@ public abstract class Loader {
|
||||||
private final SessionFactoryImplementor factory;
|
private final SessionFactoryImplementor factory;
|
||||||
private volatile ColumnNameCache columnNameCache;
|
private volatile ColumnNameCache columnNameCache;
|
||||||
|
|
||||||
private final boolean enhancementAsProxyEnabled;
|
|
||||||
|
|
||||||
private boolean isJdbc4 = true;
|
private boolean isJdbc4 = true;
|
||||||
|
|
||||||
public Loader(SessionFactoryImplementor factory) {
|
public Loader(SessionFactoryImplementor factory) {
|
||||||
this.factory = factory;
|
this.factory = factory;
|
||||||
this.enhancementAsProxyEnabled = factory.getSessionFactoryOptions().isEnhancementAsProxyEnabled();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1662,7 +1657,7 @@ public abstract class Loader {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( enhancementAsProxyEnabled && persister.getBytecodeEnhancementMetadata().isEnhancedForLazyLoading() ) {
|
if ( persister.getBytecodeEnhancementMetadata().isEnhancedForLazyLoading() ) {
|
||||||
// we have found an existing "managed copy" in the session
|
// we have found an existing "managed copy" in the session
|
||||||
// we need to check if this copy is an enhanced-proxy and, if so,
|
// we need to check if this copy is an enhanced-proxy and, if so,
|
||||||
// perform the hydration just as if it were "not yet loaded"
|
// perform the hydration just as if it were "not yet loaded"
|
||||||
|
|
|
@ -249,7 +249,7 @@ public class Property implements Serializable, MetaAttributable {
|
||||||
* @apiNote This form reports whether the property is considered part of the
|
* @apiNote This form reports whether the property is considered part of the
|
||||||
* base fetch group based solely on the mapping information. However,
|
* base fetch group based solely on the mapping information. However,
|
||||||
* {@link EnhancementHelper#includeInBaseFetchGroup} is used internally to make that
|
* {@link EnhancementHelper#includeInBaseFetchGroup} is used internally to make that
|
||||||
* decision to account for {@link org.hibernate.cfg.AvailableSettings#ALLOW_ENHANCEMENT_AS_PROXY}
|
* decision to account for other details
|
||||||
*/
|
*/
|
||||||
public boolean isLazy() {
|
public boolean isLazy() {
|
||||||
if ( value instanceof ToOne ) {
|
if ( value instanceof ToOne ) {
|
||||||
|
|
|
@ -743,7 +743,6 @@ public abstract class AbstractEntityPersister
|
||||||
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
||||||
prop,
|
prop,
|
||||||
entityMetamodel.isInstrumented(),
|
entityMetamodel.isInstrumented(),
|
||||||
sessionFactoryOptions.isEnhancementAsProxyEnabled(),
|
|
||||||
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -821,7 +820,6 @@ public abstract class AbstractEntityPersister
|
||||||
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
||||||
prop,
|
prop,
|
||||||
entityMetamodel.isInstrumented(),
|
entityMetamodel.isInstrumented(),
|
||||||
sessionFactoryOptions.isEnhancementAsProxyEnabled(),
|
|
||||||
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
||||||
);
|
);
|
||||||
while ( colIter.hasNext() ) {
|
while ( colIter.hasNext() ) {
|
||||||
|
|
|
@ -174,7 +174,6 @@ public final class PropertyFactory {
|
||||||
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
final boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
||||||
property,
|
property,
|
||||||
lazyAvailable,
|
lazyAvailable,
|
||||||
sessionFactoryOptions.isEnhancementAsProxyEnabled(),
|
|
||||||
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -38,12 +38,11 @@ public final class BytecodeEnhancementMetadataPojoImpl implements BytecodeEnhanc
|
||||||
PersistentClass persistentClass,
|
PersistentClass persistentClass,
|
||||||
Set<String> identifierAttributeNames,
|
Set<String> identifierAttributeNames,
|
||||||
CompositeType nonAggregatedCidMapper,
|
CompositeType nonAggregatedCidMapper,
|
||||||
boolean allowEnhancementAsProxy,
|
|
||||||
boolean collectionsInDefaultFetchGroupEnabled) {
|
boolean collectionsInDefaultFetchGroupEnabled) {
|
||||||
final Class mappedClass = persistentClass.getMappedClass();
|
final Class mappedClass = persistentClass.getMappedClass();
|
||||||
final boolean enhancedForLazyLoading = PersistentAttributeInterceptable.class.isAssignableFrom( mappedClass );
|
final boolean enhancedForLazyLoading = PersistentAttributeInterceptable.class.isAssignableFrom( mappedClass );
|
||||||
final LazyAttributesMetadata lazyAttributesMetadata = enhancedForLazyLoading
|
final LazyAttributesMetadata lazyAttributesMetadata = enhancedForLazyLoading
|
||||||
? LazyAttributesMetadata.from( persistentClass, true, allowEnhancementAsProxy, collectionsInDefaultFetchGroupEnabled )
|
? LazyAttributesMetadata.from( persistentClass, true, collectionsInDefaultFetchGroupEnabled )
|
||||||
: LazyAttributesMetadata.nonEnhanced( persistentClass.getEntityName() );
|
: LazyAttributesMetadata.nonEnhanced( persistentClass.getEntityName() );
|
||||||
|
|
||||||
return new BytecodeEnhancementMetadataPojoImpl(
|
return new BytecodeEnhancementMetadataPojoImpl(
|
||||||
|
|
|
@ -169,7 +169,6 @@ public class EntityMetamodel implements Serializable {
|
||||||
persistentClass,
|
persistentClass,
|
||||||
idAttributeNames,
|
idAttributeNames,
|
||||||
nonAggregatedCidMapper,
|
nonAggregatedCidMapper,
|
||||||
sessionFactoryOptions.isEnhancementAsProxyEnabled(),
|
|
||||||
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -252,7 +251,6 @@ public class EntityMetamodel implements Serializable {
|
||||||
boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
boolean lazy = ! EnhancementHelper.includeInBaseFetchGroup(
|
||||||
prop,
|
prop,
|
||||||
bytecodeEnhancementMetadata.isEnhancedForLazyLoading(),
|
bytecodeEnhancementMetadata.isEnhancedForLazyLoading(),
|
||||||
sessionFactoryOptions.isEnhancementAsProxyEnabled(),
|
|
||||||
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
sessionFactoryOptions.isCollectionsInDefaultFetchGroupEnabled()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,6 @@ public class InstrumentedProxyLazyToOneTest extends BaseNonConfigCoreFunctionalT
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.hibernate.annotations.LazyToOne;
|
||||||
import org.hibernate.annotations.LazyToOneOption;
|
import org.hibernate.annotations.LazyToOneOption;
|
||||||
import org.hibernate.bytecode.spi.BytecodeEnhancementMetadata;
|
import org.hibernate.bytecode.spi.BytecodeEnhancementMetadata;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
@ -64,6 +65,10 @@ public class CascadeDeleteManyToOneTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void testManagedWithUninitializedAssociation() {
|
public void testManagedWithUninitializedAssociation() {
|
||||||
// Delete the Child
|
// Delete the Child
|
||||||
doInHibernate(
|
doInHibernate(
|
||||||
|
@ -109,6 +114,10 @@ public class CascadeDeleteManyToOneTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void testDetachedWithUninitializedAssociation() {
|
public void testDetachedWithUninitializedAssociation() {
|
||||||
final Child detachedChild = doInHibernate(
|
final Child detachedChild = doInHibernate(
|
||||||
this::sessionFactory, s -> {
|
this::sessionFactory, s -> {
|
||||||
|
@ -136,6 +145,10 @@ public class CascadeDeleteManyToOneTest extends BaseCoreFunctionalTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void testDetachedWithInitializedAssociation() {
|
public void testDetachedWithInitializedAssociation() {
|
||||||
final Child detachedChild = doInHibernate(
|
final Child detachedChild = doInHibernate(
|
||||||
this::sessionFactory, s -> {
|
this::sessionFactory, s -> {
|
||||||
|
|
|
@ -19,6 +19,7 @@ import org.hibernate.annotations.LazyToOne;
|
||||||
import org.hibernate.annotations.LazyToOneOption;
|
import org.hibernate.annotations.LazyToOneOption;
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
|
||||||
|
@ -54,6 +55,10 @@ public class CascadeOnUninitializedTest extends BaseNonConfigCoreFunctionalTestC
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void testMergeDetachedEnhancedEntityWithUninitializedManyToOne() {
|
public void testMergeDetachedEnhancedEntityWithUninitializedManyToOne() {
|
||||||
|
|
||||||
Person person = persistPersonWithManyToOne();
|
Person person = persistPersonWithManyToOne();
|
||||||
|
@ -81,6 +86,10 @@ public class CascadeOnUninitializedTest extends BaseNonConfigCoreFunctionalTestC
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void testDeleteEnhancedEntityWithUninitializedManyToOne() {
|
public void testDeleteEnhancedEntityWithUninitializedManyToOne() {
|
||||||
Person person = persistPersonWithManyToOne();
|
Person person = persistPersonWithManyToOne();
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ import org.hibernate.bytecode.enhance.spi.UnloadedField;
|
||||||
import org.hibernate.engine.spi.EntityEntry;
|
import org.hibernate.engine.spi.EntityEntry;
|
||||||
import org.hibernate.engine.spi.SessionImplementor;
|
import org.hibernate.engine.spi.SessionImplementor;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
|
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
|
||||||
|
@ -53,6 +54,10 @@ import static org.junit.Assert.assertTrue;
|
||||||
EnhancerTestContext.class, // supports laziness and dirty-checking
|
EnhancerTestContext.class, // supports laziness and dirty-checking
|
||||||
BidirectionalLazyTest.NoDirtyCheckEnhancementContext.class // supports laziness; does not support dirty-checking
|
BidirectionalLazyTest.NoDirtyCheckEnhancementContext.class // supports laziness; does not support dirty-checking
|
||||||
})
|
})
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public class BidirectionalLazyTest extends BaseCoreFunctionalTestCase {
|
public class BidirectionalLazyTest extends BaseCoreFunctionalTestCase {
|
||||||
|
|
||||||
public Class<?>[] getAnnotatedClasses() {
|
public Class<?>[] getAnnotatedClasses() {
|
||||||
|
|
|
@ -6,17 +6,9 @@
|
||||||
*/
|
*/
|
||||||
package org.hibernate.test.bytecode.enhancement.lazy;
|
package org.hibernate.test.bytecode.enhancement.lazy;
|
||||||
|
|
||||||
import org.hibernate.annotations.LazyToOne;
|
import java.util.ArrayList;
|
||||||
import org.hibernate.annotations.LazyToOneOption;
|
import java.util.Collection;
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
import java.util.List;
|
||||||
import org.hibernate.cfg.Configuration;
|
|
||||||
import org.hibernate.proxy.HibernateProxy;
|
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import javax.persistence.CascadeType;
|
import javax.persistence.CascadeType;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
|
@ -26,20 +18,30 @@ import javax.persistence.Id;
|
||||||
import javax.persistence.ManyToOne;
|
import javax.persistence.ManyToOne;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
import org.hibernate.Hibernate;
|
||||||
|
import org.hibernate.annotations.LazyToOne;
|
||||||
|
import org.hibernate.annotations.LazyToOneOption;
|
||||||
|
import org.hibernate.bytecode.enhance.spi.interceptor.EnhancementAsProxyLazinessInterceptor;
|
||||||
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
|
import org.hibernate.cfg.Configuration;
|
||||||
|
import org.hibernate.engine.spi.PersistentAttributeInterceptable;
|
||||||
|
import org.hibernate.engine.spi.PersistentAttributeInterceptor;
|
||||||
|
import org.hibernate.proxy.HibernateProxy;
|
||||||
|
|
||||||
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.instanceOf;
|
||||||
|
import static org.hamcrest.CoreMatchers.is;
|
||||||
|
import static org.hamcrest.CoreMatchers.not;
|
||||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||||
import static org.hibernate.testing.bytecode.enhancement.EnhancerTestUtils.checkDirtyTracking;
|
import static org.hibernate.testing.bytecode.enhancement.EnhancerTestUtils.checkDirtyTracking;
|
||||||
import static org.hibernate.testing.bytecode.enhancement.EnhancerTestUtils.getFieldByReflection;
|
|
||||||
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
|
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luis Barreiro
|
* @author Luis Barreiro
|
||||||
|
@ -82,13 +84,15 @@ public class LazyLoadingTest extends BaseCoreFunctionalTestCase {
|
||||||
public void test() {
|
public void test() {
|
||||||
doInHibernate( this::sessionFactory, s -> {
|
doInHibernate( this::sessionFactory, s -> {
|
||||||
Child loadedChild = s.load( Child.class, lastChildID );
|
Child loadedChild = s.load( Child.class, lastChildID );
|
||||||
|
assertThat( loadedChild, not( instanceOf( HibernateProxy.class ) ) );
|
||||||
|
assertThat( loadedChild, instanceOf( PersistentAttributeInterceptable.class ) );
|
||||||
|
final PersistentAttributeInterceptable interceptable = (PersistentAttributeInterceptable) loadedChild;
|
||||||
|
final PersistentAttributeInterceptor interceptor = interceptable.$$_hibernate_getInterceptor();
|
||||||
|
assertThat( interceptor, instanceOf( EnhancementAsProxyLazinessInterceptor.class ) );
|
||||||
|
|
||||||
Object nameByReflection = getFieldByReflection( loadedChild, "name" );
|
assertThat( Hibernate.isPropertyInitialized( loadedChild, "name" ), is( false ) );
|
||||||
assertNotNull( "Non-lazy field 'name' was not loaded", nameByReflection );
|
assertThat( Hibernate.isPropertyInitialized( loadedChild, "parent" ), is( false ) );
|
||||||
|
assertThat( Hibernate.isPropertyInitialized( loadedChild, "children" ), is( false ) );
|
||||||
Object parentByReflection = getFieldByReflection( loadedChild, "parent" );
|
|
||||||
assertNull( "Lazy field 'parent' is initialized", parentByReflection );
|
|
||||||
assertFalse( loadedChild instanceof HibernateProxy );
|
|
||||||
|
|
||||||
Parent loadedParent = loadedChild.parent;
|
Parent loadedParent = loadedChild.parent;
|
||||||
assertThat( loadedChild.name, notNullValue() );
|
assertThat( loadedChild.name, notNullValue() );
|
||||||
|
@ -97,23 +101,18 @@ public class LazyLoadingTest extends BaseCoreFunctionalTestCase {
|
||||||
|
|
||||||
checkDirtyTracking( loadedChild );
|
checkDirtyTracking( loadedChild );
|
||||||
|
|
||||||
parentByReflection = getFieldByReflection( loadedChild, "parent" );
|
assertThat( Hibernate.isPropertyInitialized( loadedChild, "name" ), is( true ) );
|
||||||
Object childrenByReflection = getFieldByReflection( loadedParent, "children" );
|
assertThat( Hibernate.isPropertyInitialized( loadedChild, "parent" ), is( true ) );
|
||||||
assertNotNull( "Lazy field 'parent' is not loaded", parentByReflection );
|
assertThat( Hibernate.isPropertyInitialized( loadedChild, "children" ), is( true ) );
|
||||||
assertNull( "Lazy field 'children' is initialized", childrenByReflection );
|
|
||||||
assertFalse( loadedParent instanceof HibernateProxy );
|
|
||||||
assertEquals( parentID, loadedParent.id );
|
|
||||||
|
|
||||||
Collection<Child> loadedChildren = loadedParent.children;
|
Collection<Child> loadedChildren = loadedParent.children;
|
||||||
|
assertThat( Hibernate.isInitialized( loadedChildren ), is( false ) );
|
||||||
|
|
||||||
checkDirtyTracking( loadedChild );
|
checkDirtyTracking( loadedChild );
|
||||||
checkDirtyTracking( loadedParent );
|
checkDirtyTracking( loadedParent );
|
||||||
|
|
||||||
childrenByReflection = getFieldByReflection( loadedParent, "children" );
|
loadedChildren.size();
|
||||||
assertNotNull( "Lazy field 'children' is not loaded", childrenByReflection );
|
assertThat( Hibernate.isInitialized( loadedChildren ), is( true ) );
|
||||||
assertFalse( loadedChildren instanceof HibernateProxy );
|
|
||||||
assertEquals( CHILDREN_SIZE, loadedChildren.size() );
|
|
||||||
assertTrue( loadedChildren.contains( loadedChild ) );
|
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.hibernate.boot.SessionFactoryBuilder;
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.bytecode.enhancement.EnhancementOptions;
|
import org.hibernate.testing.bytecode.enhancement.EnhancementOptions;
|
||||||
|
@ -43,6 +44,10 @@ import static org.junit.Assert.assertFalse;
|
||||||
public class NaturalIdInUninitializedAssociationTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class NaturalIdInUninitializedAssociationTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void testImmutableNaturalId() {
|
public void testImmutableNaturalId() {
|
||||||
inTransaction(
|
inTransaction(
|
||||||
session -> {
|
session -> {
|
||||||
|
@ -60,6 +65,10 @@ public class NaturalIdInUninitializedAssociationTest extends BaseNonConfigCoreFu
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void testMutableNaturalId() {
|
public void testMutableNaturalId() {
|
||||||
inTransaction(
|
inTransaction(
|
||||||
session -> {
|
session -> {
|
||||||
|
|
|
@ -1,323 +0,0 @@
|
||||||
/*
|
|
||||||
* Hibernate, Relational Persistence for Idiomatic Java
|
|
||||||
*
|
|
||||||
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
|
|
||||||
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
|
|
||||||
*/
|
|
||||||
package org.hibernate.test.bytecode.enhancement.lazy;
|
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.FetchType;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.Inheritance;
|
|
||||||
import javax.persistence.InheritanceType;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.ManyToOne;
|
|
||||||
import javax.persistence.OneToMany;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
import org.hibernate.ScrollMode;
|
|
||||||
import org.hibernate.ScrollableResults;
|
|
||||||
import org.hibernate.Session;
|
|
||||||
import org.hibernate.StatelessSession;
|
|
||||||
import org.hibernate.annotations.LazyToOne;
|
|
||||||
import org.hibernate.annotations.LazyToOneOption;
|
|
||||||
import org.hibernate.boot.MetadataSources;
|
|
||||||
import org.hibernate.boot.SessionFactoryBuilder;
|
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
|
||||||
import org.hibernate.dialect.DB2Dialect;
|
|
||||||
import org.hibernate.query.Query;
|
|
||||||
import org.hibernate.stat.spi.StatisticsImplementor;
|
|
||||||
|
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
|
||||||
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
|
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Andrea Boriero
|
|
||||||
*/
|
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
|
||||||
public class QueryScrollingWithInheritanceEagerManyToOneTest extends BaseNonConfigCoreFunctionalTestCase {
|
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "false" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
|
||||||
super.configureSessionFactoryBuilder( sfb );
|
|
||||||
sfb.applyStatisticsSupport( true );
|
|
||||||
sfb.applySecondLevelCacheSupport( false );
|
|
||||||
sfb.applyQueryCacheSupport( false );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void applyMetadataSources(MetadataSources sources) {
|
|
||||||
super.applyMetadataSources( sources );
|
|
||||||
sources.addAnnotatedClass( EmployeeParent.class );
|
|
||||||
sources.addAnnotatedClass( Employee.class );
|
|
||||||
sources.addAnnotatedClass( OtherEntity.class );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testScrollableWithStatelessSession() {
|
|
||||||
final StatisticsImplementor stats = sessionFactory().getStatistics();
|
|
||||||
stats.clear();
|
|
||||||
ScrollableResults scrollableResults = null;
|
|
||||||
final StatelessSession statelessSession = sessionFactory().openStatelessSession();
|
|
||||||
|
|
||||||
try {
|
|
||||||
statelessSession.beginTransaction();
|
|
||||||
Query<Employee> query = statelessSession.createQuery(
|
|
||||||
"select distinct e from Employee e left join fetch e.otherEntities order by e.dept",
|
|
||||||
Employee.class
|
|
||||||
);
|
|
||||||
if ( getDialect() instanceof DB2Dialect ) {
|
|
||||||
/*
|
|
||||||
FetchingScrollableResultsImp#next() in order to check if the ResultSet is empty calls ResultSet#isBeforeFirst()
|
|
||||||
but the support for ResultSet#isBeforeFirst() is optional for ResultSets with a result
|
|
||||||
set type of TYPE_FORWARD_ONLY and db2 does not support it.
|
|
||||||
*/
|
|
||||||
scrollableResults = query.scroll( ScrollMode.SCROLL_INSENSITIVE );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
scrollableResults = query.scroll( ScrollMode.FORWARD_ONLY );
|
|
||||||
}
|
|
||||||
|
|
||||||
while ( scrollableResults.next() ) {
|
|
||||||
final Employee employee = (Employee) scrollableResults.get( 0 );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( employee, "otherEntities" ), is( true ) );
|
|
||||||
assertThat( Hibernate.isInitialized( employee.getOtherEntities() ), is( true ) );
|
|
||||||
if ( "ENG1".equals( employee.getDept() ) ) {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 2 ) );
|
|
||||||
for ( OtherEntity otherEntity : employee.getOtherEntities() ) {
|
|
||||||
if ( "test1".equals( otherEntity.id ) ) {
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employee" ), is( false ) );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employeeParent" ), is( true ) );
|
|
||||||
assertThat( otherEntity.employeeParent, is( employee ) );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employee" ), is( false ) );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employeeParent" ), is( true ) );
|
|
||||||
assertThat( Hibernate.isInitialized( otherEntity.employeeParent ), is( true ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 0 ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
statelessSession.getTransaction().commit();
|
|
||||||
assertThat( stats.getPrepareStatementCount(), is( 2L ) );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( scrollableResults != null ) {
|
|
||||||
scrollableResults.close();
|
|
||||||
}
|
|
||||||
if ( statelessSession.getTransaction().isActive() ) {
|
|
||||||
statelessSession.getTransaction().rollback();
|
|
||||||
}
|
|
||||||
statelessSession.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testScrollableWithSession() {
|
|
||||||
final StatisticsImplementor stats = sessionFactory().getStatistics();
|
|
||||||
stats.clear();
|
|
||||||
ScrollableResults scrollableResults = null;
|
|
||||||
final Session session = sessionFactory().openSession();
|
|
||||||
|
|
||||||
try {
|
|
||||||
session.beginTransaction();
|
|
||||||
Query<Employee> query = session.createQuery(
|
|
||||||
"select distinct e from Employee e left join fetch e.otherEntities order by e.dept",
|
|
||||||
Employee.class
|
|
||||||
);
|
|
||||||
if ( getDialect() instanceof DB2Dialect ) {
|
|
||||||
/*
|
|
||||||
FetchingScrollableResultsImp#next() in order to check if the ResultSet is empty calls ResultSet#isBeforeFirst()
|
|
||||||
but the support for ResultSet#isBeforeFirst() is optional for ResultSets with a result
|
|
||||||
set type of TYPE_FORWARD_ONLY and db2 does not support it.
|
|
||||||
*/
|
|
||||||
scrollableResults = query.scroll( ScrollMode.SCROLL_INSENSITIVE );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
scrollableResults = query.scroll( ScrollMode.FORWARD_ONLY );
|
|
||||||
}
|
|
||||||
|
|
||||||
while ( scrollableResults.next() ) {
|
|
||||||
final Employee employee = (Employee) scrollableResults.get( 0 );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( employee, "otherEntities" ), is( true ) );
|
|
||||||
assertThat( Hibernate.isInitialized( employee.getOtherEntities() ), is( true ) );
|
|
||||||
if ( "ENG1".equals( employee.getDept() ) ) {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 2 ) );
|
|
||||||
for ( OtherEntity otherEntity : employee.getOtherEntities() ) {
|
|
||||||
if ( "test1".equals( otherEntity.id ) ) {
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employee" ), is( false ) );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employeeParent" ), is( true ) );
|
|
||||||
assertThat( otherEntity.employeeParent, is( employee ) );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employee" ), is( false ) );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employeeParent" ), is( true ) );
|
|
||||||
assertThat( Hibernate.isInitialized( otherEntity.employeeParent ), is( true ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 0 ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
session.getTransaction().commit();
|
|
||||||
assertThat( stats.getPrepareStatementCount(), is( 2L ) );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( scrollableResults != null ) {
|
|
||||||
scrollableResults.close();
|
|
||||||
}
|
|
||||||
if ( session.getTransaction().isActive() ) {
|
|
||||||
session.getTransaction().rollback();
|
|
||||||
}
|
|
||||||
session.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void prepareTestData() {
|
|
||||||
inTransaction(
|
|
||||||
session -> {
|
|
||||||
Employee e1 = new Employee( "ENG1" );
|
|
||||||
Employee e2 = new Employee( "ENG2" );
|
|
||||||
OtherEntity other1 = new OtherEntity( "test1" );
|
|
||||||
OtherEntity other2 = new OtherEntity( "test2" );
|
|
||||||
e1.getOtherEntities().add( other1 );
|
|
||||||
e1.getOtherEntities().add( other2 );
|
|
||||||
e1.getParentOtherEntities().add( other1 );
|
|
||||||
e1.getParentOtherEntities().add( other2 );
|
|
||||||
other1.employee = e1;
|
|
||||||
other2.employee = e1;
|
|
||||||
other1.employeeParent = e1;
|
|
||||||
other2.employeeParent = e2;
|
|
||||||
session.persist( other1 );
|
|
||||||
session.persist( other2 );
|
|
||||||
session.persist( e1 );
|
|
||||||
session.persist( e2 );
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void cleanUpTestData() {
|
|
||||||
inTransaction(
|
|
||||||
session -> {
|
|
||||||
session.createQuery( "delete from OtherEntity" ).executeUpdate();
|
|
||||||
session.createQuery( "delete from Employee" ).executeUpdate();
|
|
||||||
session.createQuery( "delete from EmployeeParent" ).executeUpdate();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Entity(name = "EmployeeParent")
|
|
||||||
@Table(name = "EmployeeParent")
|
|
||||||
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
|
||||||
public static abstract class EmployeeParent {
|
|
||||||
|
|
||||||
@Id
|
|
||||||
private String dept;
|
|
||||||
|
|
||||||
@OneToMany(targetEntity = OtherEntity.class, mappedBy = "employeeParent", fetch = FetchType.LAZY)
|
|
||||||
protected Set<OtherEntity> parentOtherEntities = new HashSet<>();
|
|
||||||
|
|
||||||
public Set<OtherEntity> getParentOtherEntities() {
|
|
||||||
if ( parentOtherEntities == null ) {
|
|
||||||
parentOtherEntities = new LinkedHashSet();
|
|
||||||
}
|
|
||||||
return parentOtherEntities;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOtherEntities(Set<OtherEntity> pParentOtherEntites) {
|
|
||||||
parentOtherEntities = pParentOtherEntites;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDept() {
|
|
||||||
return dept;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setDept(String dept) {
|
|
||||||
this.dept = dept;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Entity(name = "Employee")
|
|
||||||
@Table(name = "Employee")
|
|
||||||
public static class Employee extends EmployeeParent {
|
|
||||||
|
|
||||||
@OneToMany(targetEntity = OtherEntity.class, mappedBy = "employee", fetch = FetchType.LAZY)
|
|
||||||
protected Set<OtherEntity> otherEntities = new HashSet<>();
|
|
||||||
|
|
||||||
public Employee(String dept) {
|
|
||||||
this();
|
|
||||||
setDept( dept );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Employee() {
|
|
||||||
// this form used by Hibernate
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<OtherEntity> getOtherEntities() {
|
|
||||||
if ( otherEntities == null ) {
|
|
||||||
otherEntities = new LinkedHashSet();
|
|
||||||
}
|
|
||||||
return otherEntities;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOtherEntities(Set<OtherEntity> pOtherEntites) {
|
|
||||||
otherEntities = pOtherEntites;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Entity(name = "OtherEntity")
|
|
||||||
@Table(name = "OtherEntity")
|
|
||||||
public static class OtherEntity {
|
|
||||||
|
|
||||||
@Id
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
|
||||||
@LazyToOne(LazyToOneOption.NO_PROXY)
|
|
||||||
@JoinColumn(name = "Employee_Id")
|
|
||||||
protected Employee employee = null;
|
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.EAGER)
|
|
||||||
//@LazyToOne(LazyToOneOption.NO_PROXY)
|
|
||||||
@JoinColumn(name = "EmployeeParent_Id")
|
|
||||||
protected EmployeeParent employeeParent = null;
|
|
||||||
|
|
||||||
protected OtherEntity() {
|
|
||||||
// this form used by Hibernate
|
|
||||||
}
|
|
||||||
|
|
||||||
public OtherEntity(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,306 +0,0 @@
|
||||||
/*
|
|
||||||
* Hibernate, Relational Persistence for Idiomatic Java
|
|
||||||
*
|
|
||||||
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
|
|
||||||
* See the lgpl.txt file in the root directory or http://www.gnu.org/licenses/lgpl-2.1.html
|
|
||||||
*/
|
|
||||||
package org.hibernate.test.bytecode.enhancement.lazy;
|
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.FetchType;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.Inheritance;
|
|
||||||
import javax.persistence.InheritanceType;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.ManyToOne;
|
|
||||||
import javax.persistence.OneToMany;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
|
|
||||||
import org.hibernate.Hibernate;
|
|
||||||
import org.hibernate.ScrollMode;
|
|
||||||
import org.hibernate.ScrollableResults;
|
|
||||||
import org.hibernate.Session;
|
|
||||||
import org.hibernate.StatelessSession;
|
|
||||||
import org.hibernate.annotations.LazyToOne;
|
|
||||||
import org.hibernate.annotations.LazyToOneOption;
|
|
||||||
import org.hibernate.boot.MetadataSources;
|
|
||||||
import org.hibernate.boot.SessionFactoryBuilder;
|
|
||||||
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
|
||||||
import org.hibernate.dialect.DB2Dialect;
|
|
||||||
import org.hibernate.query.Query;
|
|
||||||
import org.hibernate.stat.spi.StatisticsImplementor;
|
|
||||||
|
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
|
||||||
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
|
|
||||||
import org.junit.After;
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.is;
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Andrea Boriero
|
|
||||||
*/
|
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
|
||||||
public class QueryScrollingWithInheritanceTest extends BaseNonConfigCoreFunctionalTestCase {
|
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
|
||||||
super.configureSessionFactoryBuilder( sfb );
|
|
||||||
sfb.applyStatisticsSupport( true );
|
|
||||||
sfb.applySecondLevelCacheSupport( false );
|
|
||||||
sfb.applyQueryCacheSupport( false );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void applyMetadataSources(MetadataSources sources) {
|
|
||||||
super.applyMetadataSources( sources );
|
|
||||||
sources.addAnnotatedClass( EmployeeParent.class );
|
|
||||||
sources.addAnnotatedClass( Employee.class );
|
|
||||||
sources.addAnnotatedClass( OtherEntity.class );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testScrollableWithStatelessSession() {
|
|
||||||
final StatisticsImplementor stats = sessionFactory().getStatistics();
|
|
||||||
stats.clear();
|
|
||||||
ScrollableResults scrollableResults = null;
|
|
||||||
final StatelessSession statelessSession = sessionFactory().openStatelessSession();
|
|
||||||
|
|
||||||
try {
|
|
||||||
statelessSession.beginTransaction();
|
|
||||||
Query<Employee> query = statelessSession.createQuery(
|
|
||||||
"select distinct e from Employee e left join fetch e.otherEntities order by e.dept",
|
|
||||||
Employee.class
|
|
||||||
);
|
|
||||||
if ( getDialect() instanceof DB2Dialect ) {
|
|
||||||
/*
|
|
||||||
FetchingScrollableResultsImp#next() in order to check if the ResultSet is empty calls ResultSet#isBeforeFirst()
|
|
||||||
but the support for ResultSet#isBeforeFirst() is optional for ResultSets with a result
|
|
||||||
set type of TYPE_FORWARD_ONLY and db2 does not support it.
|
|
||||||
*/
|
|
||||||
scrollableResults = query.scroll( ScrollMode.SCROLL_INSENSITIVE );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
scrollableResults = query.scroll( ScrollMode.FORWARD_ONLY );
|
|
||||||
}
|
|
||||||
|
|
||||||
while ( scrollableResults.next() ) {
|
|
||||||
final Employee employee = (Employee) scrollableResults.get( 0 );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( employee, "otherEntities" ), is( true ) );
|
|
||||||
assertThat( Hibernate.isInitialized( employee.getOtherEntities() ), is( true ) );
|
|
||||||
if ( "ENG1".equals( employee.getDept() ) ) {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 2 ) );
|
|
||||||
for ( OtherEntity otherEntity : employee.getOtherEntities() ) {
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employee" ), is( false ) );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employeeParent" ), is( false ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 0 ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
statelessSession.getTransaction().commit();
|
|
||||||
assertThat( stats.getPrepareStatementCount(), is( 1L ) );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( scrollableResults != null ) {
|
|
||||||
scrollableResults.close();
|
|
||||||
}
|
|
||||||
if ( statelessSession.getTransaction().isActive() ) {
|
|
||||||
statelessSession.getTransaction().rollback();
|
|
||||||
}
|
|
||||||
statelessSession.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testScrollableWithSession() {
|
|
||||||
final StatisticsImplementor stats = sessionFactory().getStatistics();
|
|
||||||
stats.clear();
|
|
||||||
ScrollableResults scrollableResults = null;
|
|
||||||
final Session session = sessionFactory().openSession();
|
|
||||||
|
|
||||||
try {
|
|
||||||
session.beginTransaction();
|
|
||||||
Query<Employee> query = session.createQuery(
|
|
||||||
"select distinct e from Employee e left join fetch e.otherEntities order by e.dept",
|
|
||||||
Employee.class
|
|
||||||
);
|
|
||||||
if ( getDialect() instanceof DB2Dialect ) {
|
|
||||||
/*
|
|
||||||
FetchingScrollableResultsImp#next() in order to check if the ResultSet is empty calls ResultSet#isBeforeFirst()
|
|
||||||
but the support for ResultSet#isBeforeFirst() is optional for ResultSets with a result
|
|
||||||
set type of TYPE_FORWARD_ONLY and db2 does not support it.
|
|
||||||
*/
|
|
||||||
scrollableResults = query.scroll( ScrollMode.SCROLL_INSENSITIVE );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
scrollableResults = query.scroll( ScrollMode.FORWARD_ONLY );
|
|
||||||
}
|
|
||||||
|
|
||||||
while ( scrollableResults.next() ) {
|
|
||||||
final Employee employee = (Employee) scrollableResults.get( 0 );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( employee, "otherEntities" ), is( true ) );
|
|
||||||
assertThat( Hibernate.isInitialized( employee.getOtherEntities() ), is( true ) );
|
|
||||||
if ( "ENG1".equals( employee.getDept() ) ) {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 2 ) );
|
|
||||||
for ( OtherEntity otherEntity : employee.getOtherEntities() ) {
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employee" ), is( false ) );
|
|
||||||
assertThat( Hibernate.isPropertyInitialized( otherEntity, "employeeParent" ), is( false ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assertThat( employee.getOtherEntities().size(), is( 0 ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
session.getTransaction().commit();
|
|
||||||
assertThat( stats.getPrepareStatementCount(), is( 1L ) );
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
if ( scrollableResults != null ) {
|
|
||||||
scrollableResults.close();
|
|
||||||
}
|
|
||||||
if ( session.getTransaction().isActive() ) {
|
|
||||||
session.getTransaction().rollback();
|
|
||||||
}
|
|
||||||
session.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void prepareTestData() {
|
|
||||||
inTransaction(
|
|
||||||
session -> {
|
|
||||||
Employee e1 = new Employee( "ENG1" );
|
|
||||||
Employee e2 = new Employee( "ENG2" );
|
|
||||||
OtherEntity other1 = new OtherEntity( "test1" );
|
|
||||||
OtherEntity other2 = new OtherEntity( "test2" );
|
|
||||||
e1.getOtherEntities().add( other1 );
|
|
||||||
e1.getOtherEntities().add( other2 );
|
|
||||||
e1.getParentOtherEntities().add( other1 );
|
|
||||||
e1.getParentOtherEntities().add( other2 );
|
|
||||||
other1.employee = e1;
|
|
||||||
other2.employee = e1;
|
|
||||||
other1.employeeParent = e1;
|
|
||||||
other2.employeeParent = e2;
|
|
||||||
session.persist( other1 );
|
|
||||||
session.persist( other2 );
|
|
||||||
session.persist( e1 );
|
|
||||||
session.persist( e2 );
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
|
||||||
public void cleanUpTestData() {
|
|
||||||
inTransaction(
|
|
||||||
session -> {
|
|
||||||
session.createQuery( "delete from OtherEntity" ).executeUpdate();
|
|
||||||
session.createQuery( "delete from Employee" ).executeUpdate();
|
|
||||||
session.createQuery( "delete from EmployeeParent" ).executeUpdate();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Entity(name = "EmployeeParent")
|
|
||||||
@Table(name = "EmployeeParent")
|
|
||||||
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
|
|
||||||
public static abstract class EmployeeParent {
|
|
||||||
|
|
||||||
@Id
|
|
||||||
private String dept;
|
|
||||||
|
|
||||||
@OneToMany(targetEntity = OtherEntity.class, mappedBy = "employeeParent", fetch = FetchType.LAZY)
|
|
||||||
protected Set<OtherEntity> parentOtherEntities = new HashSet<>();
|
|
||||||
|
|
||||||
public Set<OtherEntity> getParentOtherEntities() {
|
|
||||||
if ( parentOtherEntities == null ) {
|
|
||||||
parentOtherEntities = new LinkedHashSet();
|
|
||||||
}
|
|
||||||
return parentOtherEntities;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOtherEntities(Set<OtherEntity> pParentOtherEntites) {
|
|
||||||
parentOtherEntities = pParentOtherEntites;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDept() {
|
|
||||||
return dept;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setDept(String dept) {
|
|
||||||
this.dept = dept;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Entity(name = "Employee")
|
|
||||||
@Table(name = "Employee")
|
|
||||||
public static class Employee extends EmployeeParent {
|
|
||||||
|
|
||||||
@OneToMany(targetEntity = OtherEntity.class, mappedBy = "employee", fetch = FetchType.LAZY)
|
|
||||||
protected Set<OtherEntity> otherEntities = new HashSet<>();
|
|
||||||
|
|
||||||
public Employee(String dept) {
|
|
||||||
this();
|
|
||||||
setDept( dept );
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Employee() {
|
|
||||||
// this form used by Hibernate
|
|
||||||
}
|
|
||||||
|
|
||||||
public Set<OtherEntity> getOtherEntities() {
|
|
||||||
if ( otherEntities == null ) {
|
|
||||||
otherEntities = new LinkedHashSet();
|
|
||||||
}
|
|
||||||
return otherEntities;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOtherEntities(Set<OtherEntity> pOtherEntites) {
|
|
||||||
otherEntities = pOtherEntites;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Entity(name = "OtherEntity")
|
|
||||||
@Table(name = "OtherEntity")
|
|
||||||
public static class OtherEntity {
|
|
||||||
|
|
||||||
@Id
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
|
||||||
@LazyToOne(LazyToOneOption.NO_PROXY)
|
|
||||||
@JoinColumn(name = "Employee_Id")
|
|
||||||
protected Employee employee = null;
|
|
||||||
|
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
|
||||||
@LazyToOne(LazyToOneOption.NO_PROXY)
|
|
||||||
@JoinColumn(name = "EmployeeParent_Id")
|
|
||||||
protected EmployeeParent employeeParent = null;
|
|
||||||
|
|
||||||
protected OtherEntity() {
|
|
||||||
// this form used by Hibernate
|
|
||||||
}
|
|
||||||
|
|
||||||
public OtherEntity(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -174,12 +174,6 @@ public class StatelessQueryScrollingTest extends BaseNonConfigCoreFunctionalTest
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void applyMetadataSources(MetadataSources sources) {
|
protected void applyMetadataSources(MetadataSources sources) {
|
||||||
super.applyMetadataSources( sources );
|
super.applyMetadataSources( sources );
|
||||||
|
|
|
@ -25,6 +25,7 @@ import org.hibernate.cfg.AvailableSettings;
|
||||||
import org.hibernate.cfg.Configuration;
|
import org.hibernate.cfg.Configuration;
|
||||||
import org.hibernate.stat.CacheRegionStatistics;
|
import org.hibernate.stat.CacheRegionStatistics;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
@ -52,6 +53,10 @@ public class UninitializedAssociationsInCacheTest extends BaseCoreFunctionalTest
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestForIssue( jiraKey = "HHH-11766")
|
@TestForIssue( jiraKey = "HHH-11766")
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void attributeLoadingFromCache() {
|
public void attributeLoadingFromCache() {
|
||||||
final AtomicLong bossId = new AtomicLong();
|
final AtomicLong bossId = new AtomicLong();
|
||||||
final AtomicLong teamleaderId = new AtomicLong();
|
final AtomicLong teamleaderId = new AtomicLong();
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.hibernate.annotations.LazyToOneOption;
|
||||||
import org.hibernate.bytecode.enhance.spi.DefaultEnhancementContext;
|
import org.hibernate.bytecode.enhance.spi.DefaultEnhancementContext;
|
||||||
import org.hibernate.bytecode.enhance.spi.UnloadedClass;
|
import org.hibernate.bytecode.enhance.spi.UnloadedClass;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
|
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
|
||||||
|
@ -48,6 +49,10 @@ import static org.junit.Assert.assertTrue;
|
||||||
EnhancerTestContext.class,
|
EnhancerTestContext.class,
|
||||||
BidirectionalLazyGroupsTest.NoDirtyCheckEnhancementContext.class
|
BidirectionalLazyGroupsTest.NoDirtyCheckEnhancementContext.class
|
||||||
})
|
})
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public class BidirectionalLazyGroupsTest extends BaseCoreFunctionalTestCase {
|
public class BidirectionalLazyGroupsTest extends BaseCoreFunctionalTestCase {
|
||||||
|
|
||||||
public Class<?>[] getAnnotatedClasses() {
|
public Class<?>[] getAnnotatedClasses() {
|
||||||
|
|
|
@ -12,6 +12,8 @@ import org.hibernate.annotations.LazyToOneOption;
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
import org.hibernate.cfg.Configuration;
|
import org.hibernate.cfg.Configuration;
|
||||||
import org.hibernate.proxy.HibernateProxy;
|
import org.hibernate.proxy.HibernateProxy;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
@ -45,6 +47,10 @@ import static org.junit.Assert.assertNull;
|
||||||
*/
|
*/
|
||||||
@TestForIssue( jiraKey = "HHH-11155" )
|
@TestForIssue( jiraKey = "HHH-11155" )
|
||||||
@RunWith( BytecodeEnhancerRunner.class )
|
@RunWith( BytecodeEnhancerRunner.class )
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public class LazyGroupTest extends BaseCoreFunctionalTestCase {
|
public class LazyGroupTest extends BaseCoreFunctionalTestCase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -26,6 +26,7 @@ import org.hibernate.annotations.LazyToOneOption;
|
||||||
import org.hibernate.annotations.NotFound;
|
import org.hibernate.annotations.NotFound;
|
||||||
import org.hibernate.annotations.NotFoundAction;
|
import org.hibernate.annotations.NotFoundAction;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
@ -50,6 +51,10 @@ public class LazyNotFoundManyToOneNonUpdatableNonInsertableTest extends BaseCore
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void test() {
|
public void test() {
|
||||||
doInHibernate(
|
doInHibernate(
|
||||||
this::sessionFactory, session -> {
|
this::sessionFactory, session -> {
|
||||||
|
|
|
@ -15,8 +15,6 @@ import javax.persistence.ConstraintMode;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.ForeignKey;
|
import javax.persistence.ForeignKey;
|
||||||
import javax.persistence.GeneratedValue;
|
|
||||||
import javax.persistence.GenerationType;
|
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.OneToOne;
|
import javax.persistence.OneToOne;
|
||||||
|
@ -27,7 +25,10 @@ import org.hibernate.annotations.LazyToOne;
|
||||||
import org.hibernate.annotations.LazyToOneOption;
|
import org.hibernate.annotations.LazyToOneOption;
|
||||||
import org.hibernate.annotations.NotFound;
|
import org.hibernate.annotations.NotFound;
|
||||||
import org.hibernate.annotations.NotFoundAction;
|
import org.hibernate.annotations.NotFoundAction;
|
||||||
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
|
import org.hibernate.cfg.Configuration;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
||||||
|
@ -37,6 +38,7 @@ import org.junit.runner.RunWith;
|
||||||
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
|
import static org.hibernate.testing.transaction.TransactionUtil.doInHibernate;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
@TestForIssue( jiraKey = "HHH-12226")
|
@TestForIssue( jiraKey = "HHH-12226")
|
||||||
@RunWith( BytecodeEnhancerRunner.class )
|
@RunWith( BytecodeEnhancerRunner.class )
|
||||||
|
@ -51,7 +53,17 @@ public class LazyNotFoundOneToOneTest extends BaseCoreFunctionalTestCase {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configure(Configuration configuration) {
|
||||||
|
super.configure(configuration);
|
||||||
|
configuration.setProperty( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void test() {
|
public void test() {
|
||||||
doInHibernate(
|
doInHibernate(
|
||||||
this::sessionFactory, session -> {
|
this::sessionFactory, session -> {
|
||||||
|
|
|
@ -224,7 +224,6 @@ public class BatchFetchProxyTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
ssrb.applySetting( AvailableSettings.SHOW_SQL, true );
|
ssrb.applySetting( AvailableSettings.SHOW_SQL, true );
|
||||||
|
|
|
@ -126,7 +126,6 @@ public class BidirectionalProxyTest extends BaseNonConfigCoreFunctionalTestCase
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -484,7 +484,6 @@ public class DeepInheritanceProxyTest extends BaseNonConfigCoreFunctionalTestCas
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -1288,7 +1288,6 @@ public class DeepInheritanceWithNonEntitiesProxyTest extends BaseNonConfigCoreFu
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,6 @@ public class EntitySharedInCollectionAndToOneTest extends BaseNonConfigCoreFunct
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -509,7 +509,6 @@ public class FetchGraphTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,6 @@ public class LazyCollectionDeletedAllowProxyTest extends BaseNonConfigCoreFuncti
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -191,9 +191,6 @@ public class LazyGroupWithInheritanceAllowProxyTest extends BaseNonConfigCoreFun
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
|
|
||||||
// todo : this is the only difference between this test and LazyGroupWithInheritanceTest
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
|
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.USE_QUERY_CACHE, "false" );
|
ssrb.applySetting( AvailableSettings.USE_QUERY_CACHE, "false" );
|
||||||
|
|
|
@ -15,6 +15,7 @@ import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
import org.hibernate.stat.Statistics;
|
import org.hibernate.stat.Statistics;
|
||||||
|
|
||||||
|
import org.hibernate.testing.FailureExpected;
|
||||||
import org.hibernate.testing.TestForIssue;
|
import org.hibernate.testing.TestForIssue;
|
||||||
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
import org.hibernate.testing.bytecode.enhancement.BytecodeEnhancerRunner;
|
||||||
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
|
import org.hibernate.testing.bytecode.enhancement.CustomEnhancementContext;
|
||||||
|
@ -38,6 +39,10 @@ import static org.junit.Assert.assertEquals;
|
||||||
@EnhancementOptions( lazyLoading = true )
|
@EnhancementOptions( lazyLoading = true )
|
||||||
public class LazyGroupWithInheritanceTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class LazyGroupWithInheritanceTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Test
|
@Test
|
||||||
|
@FailureExpected(
|
||||||
|
jiraKey = "HHH-13658",
|
||||||
|
message = "Assertions specific to enhanced lazy loading but disallowing enhanced proxies, which is no longer valid"
|
||||||
|
)
|
||||||
public void queryEntityWithAssociationToAbstract() {
|
public void queryEntityWithAssociationToAbstract() {
|
||||||
final Statistics stats = sessionFactory().getStatistics();
|
final Statistics stats = sessionFactory().getStatistics();
|
||||||
stats.clear();
|
stats.clear();
|
||||||
|
|
|
@ -57,12 +57,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
@TestForIssue( jiraKey = "HHH-13640" )
|
@TestForIssue( jiraKey = "HHH-13640" )
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
@RunWith(BytecodeEnhancerRunner.class)
|
||||||
public class LazyToOnesNoProxyFactoryWithSubclassesStatefulTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class LazyToOnesNoProxyFactoryWithSubclassesStatefulTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
super.configureSessionFactoryBuilder( sfb );
|
super.configureSessionFactoryBuilder( sfb );
|
||||||
|
|
|
@ -57,11 +57,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
@TestForIssue( jiraKey = "HHH-13640" )
|
@TestForIssue( jiraKey = "HHH-13640" )
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
@RunWith(BytecodeEnhancerRunner.class)
|
||||||
public class LazyToOnesNoProxyFactoryWithSubclassesStatelessTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class LazyToOnesNoProxyFactoryWithSubclassesStatelessTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
|
|
|
@ -47,12 +47,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
@RunWith(BytecodeEnhancerRunner.class )
|
@RunWith(BytecodeEnhancerRunner.class )
|
||||||
@EnhancementOptions(lazyLoading = true)
|
@EnhancementOptions(lazyLoading = true)
|
||||||
public class LazyToOnesProxyMergeWithSubclassesTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class LazyToOnesProxyMergeWithSubclassesTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
super.configureSessionFactoryBuilder( sfb );
|
super.configureSessionFactoryBuilder( sfb );
|
||||||
|
|
|
@ -43,11 +43,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
@TestForIssue( jiraKey = "HHH-13640" )
|
@TestForIssue( jiraKey = "HHH-13640" )
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
@RunWith(BytecodeEnhancerRunner.class)
|
||||||
public class LazyToOnesProxyWithSubclassesStatelessTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class LazyToOnesProxyWithSubclassesStatelessTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
|
|
|
@ -43,11 +43,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
@TestForIssue( jiraKey = "HHH-13640" )
|
@TestForIssue( jiraKey = "HHH-13640" )
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
@RunWith(BytecodeEnhancerRunner.class)
|
||||||
public class LazyToOnesProxyWithSubclassesTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class LazyToOnesProxyWithSubclassesTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
|
|
|
@ -159,7 +159,6 @@ public class LoadANonExistingEntityTest extends BaseNonConfigCoreFunctionalTestC
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -181,7 +181,6 @@ public class LoadANonExistingNotFoundBatchEntityTest extends BaseNonConfigCoreFu
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -161,7 +161,6 @@ public class LoadANonExistingNotFoundEntityTest extends BaseNonConfigCoreFunctio
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,6 @@ public class MappedSuperclassWithEmbeddableTest extends BaseNonConfigCoreFunctio
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
|
|
|
@ -132,7 +132,6 @@ public class MapsIdProxyBidirectionalTest extends BaseNonConfigCoreFunctionalTes
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
ssrb.applySetting( AvailableSettings.SHOW_SQL, true );
|
ssrb.applySetting( AvailableSettings.SHOW_SQL, true );
|
||||||
|
|
|
@ -101,7 +101,6 @@ public class MapsIdProxyUnidirectionalTest extends BaseNonConfigCoreFunctionalTe
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
ssrb.applySetting( AvailableSettings.SHOW_SQL, true );
|
ssrb.applySetting( AvailableSettings.SHOW_SQL, true );
|
||||||
|
|
|
@ -118,7 +118,6 @@ public class MergeDetachedToProxyTest extends BaseNonConfigCoreFunctionalTestCas
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,7 +170,6 @@ public class MergeProxyTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,6 @@ public class NaturalIdInUninitializedProxyTest extends BaseNonConfigCoreFunction
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,6 @@ public class ProxyDeletionTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,6 @@ public class ProxyInitializeAndUpdateInlineDirtyTrackingDynamicUpdateTest extend
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -36,11 +36,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
@RunWith(BytecodeEnhancerRunner.class)
|
||||||
@EnhancementOptions(lazyLoading = true,inlineDirtyChecking = true)
|
@EnhancementOptions(lazyLoading = true,inlineDirtyChecking = true)
|
||||||
public class ProxyInitializeAndUpdateInlineDirtyTrackingTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class ProxyInitializeAndUpdateInlineDirtyTrackingTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
|
|
|
@ -37,11 +37,6 @@ import static org.junit.Assert.assertTrue;
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
@RunWith(BytecodeEnhancerRunner.class)
|
||||||
@EnhancementOptions(lazyLoading = true)
|
@EnhancementOptions(lazyLoading = true)
|
||||||
public class ProxyInitializeAndUpdateTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class ProxyInitializeAndUpdateTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
|
|
|
@ -49,11 +49,6 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
*/
|
*/
|
||||||
@RunWith(BytecodeEnhancerRunner.class)
|
@RunWith(BytecodeEnhancerRunner.class)
|
||||||
public class QueryScrollingWithInheritanceProxyEagerManyToOneTest extends BaseNonConfigCoreFunctionalTestCase {
|
public class QueryScrollingWithInheritanceProxyEagerManyToOneTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
protected void configureSessionFactoryBuilder(SessionFactoryBuilder sfb) {
|
||||||
|
|
|
@ -66,7 +66,6 @@ public class SetIdentifierOnAEnhancedProxyTest extends BaseNonConfigCoreFunction
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
||||||
|
|
|
@ -43,7 +43,6 @@ public class SharingReferenceTest extends BaseNonConfigCoreFunctionalTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,6 @@ public class SimpleUpdateTestWithLazyLoading extends BaseNonConfigCoreFunctional
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
||||||
|
|
|
@ -55,7 +55,6 @@ public class SimpleUpdateTestWithLazyLoadingAndInlineDirtyTracking extends BaseN
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
ssrb.applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
ssrb.applySetting( AvailableSettings.ENABLE_LAZY_LOAD_NO_TRANS, "true" );
|
||||||
|
|
|
@ -46,7 +46,6 @@ public abstract class AbstractBatchingTest extends BaseNonConfigCoreFunctionalTe
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,6 @@ public class DirtyCheckPrivateUnMappedCollectionTest extends BaseNonConfigCoreFu
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ public class EntityWithMutableAttributesTest extends BaseNonConfigCoreFunctional
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,6 @@ public class LoadAndUpdateEntitiesWithCollectionsTest extends BaseNonConfigCoreF
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,6 @@ public class ManyToOnePropertyAccessByFieldTest extends BaseNonConfigCoreFunctio
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,6 @@ public class ManyToOneWithEmbeddedAndNotOptionalFieldTest extends BaseNonConfigC
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
ssrb.applySetting( AvailableSettings.FORMAT_SQL, "false" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,6 @@ public class SimpleDynamicUpdateTest extends BaseNonConfigCoreFunctionalTestCase
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,6 @@ public class DynamicUpdateAndCollectionsTest extends BaseNonConfigCoreFunctional
|
||||||
@Override
|
@Override
|
||||||
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
protected void configureStandardServiceRegistryBuilder(StandardServiceRegistryBuilder ssrb) {
|
||||||
super.configureStandardServiceRegistryBuilder( ssrb );
|
super.configureStandardServiceRegistryBuilder( ssrb );
|
||||||
ssrb.applySetting( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
ssrb.applySetting( AvailableSettings.DEFAULT_BATCH_FETCH_SIZE, "100" );
|
||||||
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
ssrb.applySetting( AvailableSettings.GENERATE_STATISTICS, "true" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,6 @@ public class EnhancedProxyCacheTest extends BaseCoreFunctionalTestCase {
|
||||||
@Override
|
@Override
|
||||||
protected void configure(Configuration cfg) {
|
protected void configure(Configuration cfg) {
|
||||||
super.configure( cfg );
|
super.configure( cfg );
|
||||||
cfg.setProperty( AvailableSettings.ALLOW_ENHANCEMENT_AS_PROXY, "true" );
|
|
||||||
cfg.setProperty( Environment.GENERATE_STATISTICS, "true" );
|
cfg.setProperty( Environment.GENERATE_STATISTICS, "true" );
|
||||||
cfg.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "true" );
|
cfg.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "true" );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue