public class CteValuesListBulkIdStrategy extends Object implements MultiTableBulkIdStrategy
This bulk-id strategy uses a CTE with a VALUE list to hold the identifiers, which are later used by the update or delete statement:
<pre> with HT_Person (id ) as ( select id from ( values (?), (?), (?) (?) ) as HT (id) ) delete from Person where ( id ) in ( select id from HT_Person ) </pre>
MultiTableBulkIdStrategy.DeleteHandler, MultiTableBulkIdStrategy.UpdateHandler
Modifier and Type | Field and Description |
---|---|
static CteValuesListBulkIdStrategy |
INSTANCE |
Constructor and Description |
---|
CteValuesListBulkIdStrategy() |
Modifier and Type | Method and Description |
---|---|
MultiTableBulkIdStrategy.DeleteHandler |
buildDeleteHandler(SessionFactoryImplementor factory,
org.hibernate.hql.internal.ast.HqlSqlWalker walker)
Build a handler capable of handling the bulk delete indicated by the given walker.
|
MultiTableBulkIdStrategy.UpdateHandler |
buildUpdateHandler(SessionFactoryImplementor factory,
org.hibernate.hql.internal.ast.HqlSqlWalker walker)
Build a handler capable of handling the bulk update indicated by the given walker.
|
void |
prepare(JdbcServices jdbcServices,
JdbcConnectionAccess jdbcConnectionAccess,
MetadataImplementor metadataImplementor,
SessionFactoryOptions sessionFactoryOptions)
Prepare the strategy.
|
void |
release(JdbcServices jdbcServices,
JdbcConnectionAccess connectionAccess)
Release the strategy.
|
public static final CteValuesListBulkIdStrategy INSTANCE
public void prepare(JdbcServices jdbcServices, JdbcConnectionAccess jdbcConnectionAccess, MetadataImplementor metadataImplementor, SessionFactoryOptions sessionFactoryOptions)
MultiTableBulkIdStrategy
Prepare the strategy. Called as the SessionFactory is being built. Intended patterns here include:<ul> <li>Adding tables to the passed Mappings, to be picked by by "schema management tools"</li> <li>Manually creating the tables immediately through the passed JDBC Connection access</li> </ul>
prepare
in interface MultiTableBulkIdStrategy
jdbcServices
- The JdbcService objectjdbcConnectionAccess
- Access to the JDBC ConnectionmetadataImplementor
- Access to the O/RM mapping informationpublic void release(JdbcServices jdbcServices, JdbcConnectionAccess connectionAccess)
MultiTableBulkIdStrategy
Release the strategy. Called as the SessionFactory is being shut down.
release
in interface MultiTableBulkIdStrategy
jdbcServices
- The JdbcService objectconnectionAccess
- Access to the JDBC Connectionpublic MultiTableBulkIdStrategy.UpdateHandler buildUpdateHandler(SessionFactoryImplementor factory, org.hibernate.hql.internal.ast.HqlSqlWalker walker)
MultiTableBulkIdStrategy
Build a handler capable of handling the bulk update indicated by the given walker.
buildUpdateHandler
in interface MultiTableBulkIdStrategy
factory
- The SessionFactorywalker
- The AST walker, representing the update querypublic MultiTableBulkIdStrategy.DeleteHandler buildDeleteHandler(SessionFactoryImplementor factory, org.hibernate.hql.internal.ast.HqlSqlWalker walker)
MultiTableBulkIdStrategy
Build a handler capable of handling the bulk delete indicated by the given walker.
buildDeleteHandler
in interface MultiTableBulkIdStrategy
factory
- The SessionFactorywalker
- The AST walker, representing the delete queryCopyright © 2001-2018 Red Hat, Inc. All Rights Reserved.