public InlineIdsIdsInClauseDeleteHandlerImpl( SessionFactoryImplementor factory, HqlSqlWalker walker) { super( factory, walker ); Dialect dialect = factory.getServiceRegistry().getService( JdbcServices.class ).getDialect(); if ( !dialect.supportsRowValueConstructorSyntaxInInList() ) { throw new UnsupportedOperationException( "The " + getClass().getSimpleName() + " can only be used with Dialects that support IN clause row-value expressions (for composite identifiers)!" ); } }
public InlineIdsInClauseUpdateHandlerImpl( SessionFactoryImplementor factory, HqlSqlWalker walker) { super( factory, walker ); Dialect dialect = factory.getServiceRegistry().getService( JdbcServices.class ).getDialect(); if ( !dialect.supportsRowValueConstructorSyntaxInInList() ) { throw new UnsupportedOperationException( "The " + getClass().getSimpleName() + " can only be used with Dialects that support IN clause row-value expressions (for composite identifiers)!" ); } }
/** * Get the SQL dialect. * <p/> * Shorthand for {@code getJdbcServices().getDialect()} * * @return The dialect * * @deprecated (since 5.2) instead, use this factory's {{@link #getServiceRegistry()}} -> * {@link JdbcServices#getDialect()} */ @Deprecated default Dialect getDialect() { if ( getServiceRegistry() == null ) { throw new IllegalStateException( "Cannot determine dialect because serviceRegistry is null." ); } return getServiceRegistry().getService( JdbcServices.class ).getDialect(); }
public InlineIdsSubSelectValuesListUpdateHandlerImpl( SessionFactoryImplementor factory, HqlSqlWalker walker) { super( factory, walker ); Dialect dialect = factory().getServiceRegistry().getService( JdbcServices.class ).getDialect(); if ( !dialect.supportsRowValueConstructorSyntaxInInList() ) { throw new UnsupportedOperationException( "The " + getClass().getSimpleName() + " can only be used with Dialects that support IN clause row-value expressions (for composite identifiers)!" ); } if ( !dialect.supportsValuesList() ) { throw new UnsupportedOperationException( "The " + getClass().getSimpleName() + " can only be used with Dialects that support VALUES lists!" ); } }
public InlineIdsSubSelectValuesListDeleteHandlerImpl( SessionFactoryImplementor factory, HqlSqlWalker walker) { super( factory, walker ); Dialect dialect = factory().getServiceRegistry().getService( JdbcServices.class ).getDialect(); if ( !dialect.supportsRowValueConstructorSyntaxInInList() ) { throw new UnsupportedOperationException( "The " + getClass().getSimpleName() + " can only be used with Dialects that support IN clause row-value expressions (for composite identifiers)!" ); } if ( !dialect.supportsValuesList() ) { throw new UnsupportedOperationException( "The " + getClass().getSimpleName() + " can only be used with Dialects that support VALUES lists!" ); } }
@Override protected String expectedForeignKeyName() { if ( this.serviceRegistry.getService( JdbcServices.class ).getDialect() instanceof AbstractHANADialect ) { return "FKe1lr9dd16cmmon53r7m736yev"; // Non-ASCII, non-alphanumeric identifiers are quoted on HANA } else { return "FKgvrnki5fwp3qo0hfp1bu1jj0q"; } }
private static Dialect determineDialect(MetadataBuildingOptions buildingOptions) { final Dialect dialect = buildingOptions.getServiceRegistry().getService( JdbcServices.class ).getDialect(); if ( dialect != null ) { return dialect; } // Use H2 dialect as default return new H2Dialect(); }
@Override protected String expectedIndexName() { if ( this.serviceRegistry.getService( JdbcServices.class ).getDialect() instanceof AbstractHANADialect ) { return "IDXinnacp0woeltj5l0k4vgabf8k"; // Non-ASCII, non-alphanumeric identifiers are quoted on HANA } else { return "IDXpm66tdjkgtsca5x2uwux487t5"; } } }
@Override protected String expectedUniqueKeyName() { if ( this.serviceRegistry.getService( JdbcServices.class ).getDialect() instanceof AbstractHANADialect ) { return "UKinnacp0woeltj5l0k4vgabf8k"; // Non-ASCII, non-alphanumeric identifiers are quoted on HANA } else { return "UKpm66tdjkgtsca5x2uwux487t5"; } }
public Dialect getDialect() { return sessionFactoryHelper.getFactory().getServiceRegistry().getService( JdbcServices.class ).getDialect(); }
protected Dialect dialect() { return factory().getServiceRegistry().getService( JdbcServices.class ).getDialect(); }
@Override public boolean mapToMapFromEntity( SessionImplementor session, Map<String, Object> data, Object newObj, Object oldObj) { data.put( propertyData.getName(), newObj ); boolean dbLogicallyDifferent = true; if ( (session.getFactory().getJdbcServices() .getDialect() instanceof Oracle8iDialect) && (newObj instanceof String || oldObj instanceof String) ) { // Don't generate new revision when database replaces empty string with NULL during INSERT or UPDATE statements. dbLogicallyDifferent = !(StringTools.isEmpty( newObj ) && StringTools.isEmpty( oldObj )); } return dbLogicallyDifferent && !areEqual( newObj, oldObj ); }
@Override public int execute(QueryParameters parameters, SharedSessionContractImplementor session) throws HibernateException { return doExecute( parameters, session, session.getJdbcServices().getDialect() .addSqlHintOrComment( sql, parameters, session.getFactory().getSessionFactoryOptions().isCommentsEnabled() ), parameterSpecifications ); }
/** * Constructs a ResultSetReturnImpl * * @param jdbcCoordinator The JdbcCoordinator */ public ResultSetReturnImpl(JdbcCoordinator jdbcCoordinator) { this.jdbcCoordinator = jdbcCoordinator; final JdbcServices jdbcServices = jdbcCoordinator.getJdbcSessionOwner() .getJdbcSessionContext() .getServiceRegistry() .getService( JdbcServices.class ); this.dialect = jdbcServices.getDialect(); this.sqlStatementLogger = jdbcServices.getSqlStatementLogger(); this.sqlExceptionHelper = jdbcServices.getSqlExceptionHelper(); }
@Override public void registerRefCursorParameter(CallableStatement statement, int position) { if ( jdbcServices.getExtractedMetaDataSupport().supportsRefCursors() ) { try { statement.registerOutParameter( position, refCursorTypeCode() ); } catch (SQLException e) { throw jdbcServices.getSqlExceptionHelper().convert( e, "Error registering REF_CURSOR parameter [" + position + "]" ); } } else { try { jdbcServices.getDialect().registerResultSetOutParameter( statement, position ); } catch (SQLException e) { throw jdbcServices.getSqlExceptionHelper().convert( e, "Error asking dialect to register ref cursor parameter [" + position + "]" ); } } }
@Override public void registerRefCursorParameter(CallableStatement statement, String name) { if ( jdbcServices.getExtractedMetaDataSupport().supportsRefCursors() ) { try { statement.registerOutParameter( name, refCursorTypeCode() ); } catch (SQLException e) { throw jdbcServices.getSqlExceptionHelper().convert( e, "Error registering REF_CURSOR parameter [" + name + "]" ); } } else { try { jdbcServices.getDialect().registerResultSetOutParameter( statement, name ); } catch (SQLException e) { throw jdbcServices.getSqlExceptionHelper().convert( e, "Error asking dialect to register ref cursor parameter [" + name + "]" ); } } }
protected Update generateUpdate( String tableName, String[] columnNames, String idSubselect, String comment) { final Update update = new Update( factory().getServiceRegistry().getService( JdbcServices.class ).getDialect() ) .setTableName( tableName ) .setWhere( "(" + String.join( ", ", (CharSequence[]) columnNames ) + ") in (" + idSubselect + ")" ); if ( factory().getSessionFactoryOptions().isCommentsEnabled() ) { update.setComment( comment ); } return update; } }
/** * Modify the SQL, adding lock hints and comments, if necessary */ protected String preprocessSQL( String sql, QueryParameters parameters, SessionFactoryImplementor sessionFactory, List<AfterLoadAction> afterLoadActions) throws HibernateException { Dialect dialect = sessionFactory.getServiceRegistry().getService( JdbcServices.class ).getDialect(); sql = applyLocks( sql, parameters, dialect, afterLoadActions ); sql = dialect.addSqlHintOrComment( sql, parameters, sessionFactory.getSessionFactoryOptions().isCommentsEnabled() ); return processDistinctKeyword( sql, parameters ); }
@SuppressWarnings({"unchecked", "UnusedParameters"}) private static void applyRelationalConstraints(ValidatorFactory factory, ActivationContext activationContext) { final ConfigurationService cfgService = activationContext.getServiceRegistry().getService( ConfigurationService.class ); if ( !cfgService.getSetting( BeanValidationIntegrator.APPLY_CONSTRAINTS, StandardConverters.BOOLEAN, true ) ) { LOG.debug( "Skipping application of relational constraints from legacy Hibernate Validator" ); return; } final Set<ValidationMode> modes = activationContext.getValidationModes(); if ( ! ( modes.contains( ValidationMode.DDL ) || modes.contains( ValidationMode.AUTO ) ) ) { return; } applyRelationalConstraints( factory, activationContext.getMetadata().getEntityBindings(), cfgService.getSettings(), activationContext.getServiceRegistry().getService( JdbcServices.class ).getDialect(), new ClassLoaderAccessImpl( null, activationContext.getServiceRegistry().getService( ClassLoaderService.class ) ) ); }
@Override protected Update generateUpdate( String tableName, String[] columnNames, String idSubselect, String comment) { final Update update = new Update( factory().getServiceRegistry().getService( JdbcServices.class ).getDialect() ) .setTableName( tableName ) .setWhere( idSubselect ); if ( factory().getSessionFactoryOptions().isCommentsEnabled() ) { update.setComment( comment ); } return update; } }