public MultiTableUpdateExecutor(HqlSqlWalker walker) { MultiTableBulkIdStrategy strategy = walker.getSessionFactoryHelper() .getFactory() .getSessionFactoryOptions() .getMultiTableBulkIdStrategy(); this.updateHandler = strategy.buildUpdateHandler( walker.getSessionFactoryHelper().getFactory(), walker ); }
@Override public UpdateHandler buildUpdateHandler(SessionFactoryImplementor factory, HqlSqlWalker walker) { UpdateHandler updateHandler = delegate.buildUpdateHandler(factory, walker); final UpdateStatement updateStatement = (UpdateStatement) walker.getAST(); final FromElement fromElement = updateStatement.getFromClause().getFromElement(); final AbstractEntityPersister targetedPersister = (AbstractEntityPersister) fromElement.getQueryable(); // Only do this when we have secondary tables if (targetedPersister.getConstraintOrderedTableNameClosure().length > 1) { if (updateHandler instanceof TableBasedUpdateHandlerImpl) { return new CustomTableBasedUpdateHandlerImpl((TableBasedUpdateHandlerImpl) updateHandler, walker); } else { LOG.warning("Unsupported update handler that can't be adapted to support updates to secondary tables: " + updateHandler); } } return updateHandler; }
@Override public UpdateHandler buildUpdateHandler(SessionFactoryImplementor factory, HqlSqlWalker walker) { UpdateHandler updateHandler = delegate.buildUpdateHandler(factory, walker); final UpdateStatement updateStatement = (UpdateStatement) walker.getAST(); final FromElement fromElement = updateStatement.getFromClause().getFromElement(); final AbstractEntityPersister targetedPersister = (AbstractEntityPersister) fromElement.getQueryable(); // Only do this when we have secondary tables if (targetedPersister.getConstraintOrderedTableNameClosure().length > 1) { if (updateHandler instanceof TableBasedUpdateHandlerImpl) { return new CustomTableBasedUpdateHandlerImpl((TableBasedUpdateHandlerImpl) updateHandler, walker); } else { LOG.warning("Unsupported update handler that can't be adapted to support updates to secondary tables: " + updateHandler); } } return updateHandler; }
@Override public UpdateHandler buildUpdateHandler(SessionFactoryImplementor factory, HqlSqlWalker walker) { UpdateHandler updateHandler = delegate.buildUpdateHandler(factory, walker); final UpdateStatement updateStatement = (UpdateStatement) walker.getAST(); final FromElement fromElement = updateStatement.getFromClause().getFromElement(); final AbstractEntityPersister targetedPersister = (AbstractEntityPersister) fromElement.getQueryable(); // Only do this when we have secondary tables if (targetedPersister.getConstraintOrderedTableNameClosure().length > 1) { if (updateHandler instanceof TableBasedUpdateHandlerImpl) { return new CustomTableBasedUpdateHandlerImpl((TableBasedUpdateHandlerImpl) updateHandler, walker); } else { LOG.warning("Unsupported update handler that can't be adapted to support updates to secondary tables: " + updateHandler); } } return updateHandler; }
@Override public UpdateHandler buildUpdateHandler(SessionFactoryImplementor factory, HqlSqlWalker walker) { UpdateHandler updateHandler = delegate.buildUpdateHandler(factory, walker); final UpdateStatement updateStatement = (UpdateStatement) walker.getAST(); final FromElement fromElement = updateStatement.getFromClause().getFromElement(); final AbstractEntityPersister targetedPersister = (AbstractEntityPersister) fromElement.getQueryable(); // Only do this when we have secondary tables if (targetedPersister.getConstraintOrderedTableNameClosure().length > 1) { if (updateHandler instanceof TableBasedUpdateHandlerImpl) { return new CustomTableBasedUpdateHandlerImpl((TableBasedUpdateHandlerImpl) updateHandler, walker); } else { LOG.warning("Unsupported update handler that can't be adapted to support updates to secondary tables: " + updateHandler); } } return updateHandler; }
@Override public UpdateHandler buildUpdateHandler(SessionFactoryImplementor factory, HqlSqlWalker walker) { UpdateHandler updateHandler = delegate.buildUpdateHandler(factory, walker); final UpdateStatement updateStatement = (UpdateStatement) walker.getAST(); final FromElement fromElement = updateStatement.getFromClause().getFromElement(); final AbstractEntityPersister targetedPersister = (AbstractEntityPersister) fromElement.getQueryable(); // Only do this when we have secondary tables if (targetedPersister.getConstraintOrderedTableNameClosure().length > 1) { if (updateHandler instanceof TableBasedUpdateHandlerImpl) { return new CustomTableBasedUpdateHandlerImpl((TableBasedUpdateHandlerImpl) updateHandler, walker); } else { LOG.warning("Unsupported update handler that can't be adapted to support updates to secondary tables: " + updateHandler); } } return updateHandler; }
@Override public UpdateHandler buildUpdateHandler(SessionFactoryImplementor factory, HqlSqlWalker walker) { UpdateHandler updateHandler = delegate.buildUpdateHandler(factory, walker); final UpdateStatement updateStatement = (UpdateStatement) walker.getAST(); final FromElement fromElement = updateStatement.getFromClause().getFromElement(); final AbstractEntityPersister targetedPersister = (AbstractEntityPersister) fromElement.getQueryable(); // Only do this when we have secondary tables if (targetedPersister.getConstraintOrderedTableNameClosure().length > 1) { if (updateHandler instanceof TableBasedUpdateHandlerImpl) { return new CustomTableBasedUpdateHandlerImpl((TableBasedUpdateHandlerImpl) updateHandler, walker); } else { LOG.warning("Unsupported update handler that can't be adapted to support updates to secondary tables: " + updateHandler); } } return updateHandler; }