remove hibernate.query.omit_join_of_superclass_tables

This commit is contained in:
Gavin King 2022-01-22 19:46:13 +01:00
parent 6ddb12412c
commit 766483e46d
5 changed files with 0 additions and 33 deletions

View File

@ -522,12 +522,6 @@ For this reason, we can expand the bind parameters to power-of-two: 4, 8, 16, 32
This way, an IN clause with 5, 6, or 7 bind parameters will use the 8 IN clause, This way, an IN clause with 5, 6, or 7 bind parameters will use the 8 IN clause,
therefore reusing its execution plan. therefore reusing its execution plan.
`*hibernate.query.omit_join_of_superclass_tables*` (e.g. `false` or `true` (default value))::
When you use `jakarta.persistence.InheritanceType#JOINED` strategy for inheritance mapping and query
a value from an entity, all superclass tables are joined in the query regardless you need them.
+
With this setting set to true only superclass tables which are really needed are joined.
==== Multi-table bulk HQL operations ==== Multi-table bulk HQL operations
`*hibernate.hql.bulk_id_strategy*` (e.g. A fully-qualified class name, an instance, or a `Class` object reference):: `*hibernate.hql.bulk_id_strategy*` (e.g. A fully-qualified class name, an instance, or a `Class` object reference)::

View File

@ -110,7 +110,6 @@ import static org.hibernate.cfg.AvailableSettings.JTA_TRACK_BY_THREAD;
import static org.hibernate.cfg.AvailableSettings.LOG_SESSION_METRICS; import static org.hibernate.cfg.AvailableSettings.LOG_SESSION_METRICS;
import static org.hibernate.cfg.AvailableSettings.MAX_FETCH_DEPTH; import static org.hibernate.cfg.AvailableSettings.MAX_FETCH_DEPTH;
import static org.hibernate.cfg.AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER; import static org.hibernate.cfg.AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER;
import static org.hibernate.cfg.AvailableSettings.OMIT_JOIN_OF_SUPERCLASS_TABLES;
import static org.hibernate.cfg.AvailableSettings.ORDER_INSERTS; import static org.hibernate.cfg.AvailableSettings.ORDER_INSERTS;
import static org.hibernate.cfg.AvailableSettings.ORDER_UPDATES; import static org.hibernate.cfg.AvailableSettings.ORDER_UPDATES;
import static org.hibernate.cfg.AvailableSettings.PREFER_USER_TRANSACTION; import static org.hibernate.cfg.AvailableSettings.PREFER_USER_TRANSACTION;
@ -218,7 +217,6 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
private SqmTranslatorFactory sqmTranslatorFactory; private SqmTranslatorFactory sqmTranslatorFactory;
private Boolean useOfJdbcNamedParametersEnabled; private Boolean useOfJdbcNamedParametersEnabled;
private boolean namedQueryStartupCheckingEnabled; private boolean namedQueryStartupCheckingEnabled;
private final boolean omitJoinOfSuperclassTablesEnabled;
private final int preferredSqlTypeCodeForBoolean; private final int preferredSqlTypeCodeForBoolean;
private final TimeZoneStorageStrategy defaultTimeZoneStorageStrategy; private final TimeZoneStorageStrategy defaultTimeZoneStorageStrategy;
@ -425,7 +423,6 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
this.useOfJdbcNamedParametersEnabled = cfgService.getSetting( CALLABLE_NAMED_PARAMS_ENABLED, BOOLEAN, true ); this.useOfJdbcNamedParametersEnabled = cfgService.getSetting( CALLABLE_NAMED_PARAMS_ENABLED, BOOLEAN, true );
this.namedQueryStartupCheckingEnabled = cfgService.getSetting( QUERY_STARTUP_CHECKING, BOOLEAN, true ); this.namedQueryStartupCheckingEnabled = cfgService.getSetting( QUERY_STARTUP_CHECKING, BOOLEAN, true );
this.omitJoinOfSuperclassTablesEnabled = cfgService.getSetting( OMIT_JOIN_OF_SUPERCLASS_TABLES, BOOLEAN, true );
this.preferredSqlTypeCodeForBoolean = ConfigurationHelper.getPreferredSqlTypeCodeForBoolean( serviceRegistry ); this.preferredSqlTypeCodeForBoolean = ConfigurationHelper.getPreferredSqlTypeCodeForBoolean( serviceRegistry );
this.defaultTimeZoneStorageStrategy = context.getMetadataBuildingOptions().getDefaultTimeZoneStorage(); this.defaultTimeZoneStorageStrategy = context.getMetadataBuildingOptions().getDefaultTimeZoneStorage();
@ -1198,11 +1195,6 @@ public class SessionFactoryOptionsBuilder implements SessionFactoryOptions {
return collectionsInDefaultFetchGroupEnabled; return collectionsInDefaultFetchGroupEnabled;
} }
@Override
public boolean isOmitJoinOfSuperclassTablesEnabled() {
return omitJoinOfSuperclassTablesEnabled;
}
@Override @Override
public int getPreferredSqlTypeCodeForBoolean() { public int getPreferredSqlTypeCodeForBoolean() {
return preferredSqlTypeCodeForBoolean; return preferredSqlTypeCodeForBoolean;

View File

@ -445,11 +445,6 @@ public class AbstractDelegatingSessionFactoryOptions implements SessionFactoryOp
return delegate().getCustomSqmFunctionRegistry(); return delegate().getCustomSqmFunctionRegistry();
} }
@Override
public boolean isOmitJoinOfSuperclassTablesEnabled() {
return delegate.isOmitJoinOfSuperclassTablesEnabled();
}
@Override @Override
public int getPreferredSqlTypeCodeForBoolean() { public int getPreferredSqlTypeCodeForBoolean() {
return delegate.getPreferredSqlTypeCodeForBoolean(); return delegate.getPreferredSqlTypeCodeForBoolean();

View File

@ -344,8 +344,6 @@ public interface SessionFactoryOptions extends QueryEngineOptions {
return false; return false;
} }
boolean isOmitJoinOfSuperclassTablesEnabled();
int getPreferredSqlTypeCodeForBoolean(); int getPreferredSqlTypeCodeForBoolean();
TimeZoneStorageStrategy getDefaultTimeZoneStorageStrategy(); TimeZoneStorageStrategy getDefaultTimeZoneStorageStrategy();

View File

@ -2286,18 +2286,6 @@ public interface AvailableSettings {
*/ */
String SEQUENCE_INCREMENT_SIZE_MISMATCH_STRATEGY = "hibernate.id.sequence.increment_size_mismatch_strategy"; String SEQUENCE_INCREMENT_SIZE_MISMATCH_STRATEGY = "hibernate.id.sequence.increment_size_mismatch_strategy";
/**
* When you use {@link jakarta.persistence.InheritanceType#JOINED} strategy for
* inheritance mapping and query a value from an entity, all superclass tables
* are joined in the query regardless you need them. With this setting set to
* true only superclass tables which are really needed are joined.
* <p>
* The default value is true.
*
* @since 5.4
*/
String OMIT_JOIN_OF_SUPERCLASS_TABLES = "hibernate.query.omit_join_of_superclass_tables";
/** /**
* Specifies the preferred JDBC type code for storing boolean values. When no * Specifies the preferred JDBC type code for storing boolean values. When no
* type code is explicitly specified, a sensible * type code is explicitly specified, a sensible