use of org.hibernate.loader.entity.CascadeEntityLoader in project hibernate-orm by hibernate.
the class AbstractEntityPersister method createLoaders.
// Relational based Persisters should be content with this implementation
protected void createLoaders() {
final Map loaders = getLoaders();
loaders.put(LockMode.NONE, createEntityLoader(LockMode.NONE));
UniqueEntityLoader readLoader = createEntityLoader(LockMode.READ);
loaders.put(LockMode.READ, readLoader);
// TODO: inexact, what we really need to know is: are any outer joins used?
boolean disableForUpdate = getSubclassTableSpan() > 1 && hasSubclasses() && !getFactory().getDialect().supportsOuterJoinForUpdate();
loaders.put(LockMode.UPGRADE, disableForUpdate ? readLoader : createEntityLoader(LockMode.UPGRADE));
loaders.put(LockMode.UPGRADE_NOWAIT, disableForUpdate ? readLoader : createEntityLoader(LockMode.UPGRADE_NOWAIT));
loaders.put(LockMode.UPGRADE_SKIPLOCKED, disableForUpdate ? readLoader : createEntityLoader(LockMode.UPGRADE_SKIPLOCKED));
loaders.put(LockMode.FORCE, disableForUpdate ? readLoader : createEntityLoader(LockMode.FORCE));
loaders.put(LockMode.PESSIMISTIC_READ, disableForUpdate ? readLoader : createEntityLoader(LockMode.PESSIMISTIC_READ));
loaders.put(LockMode.PESSIMISTIC_WRITE, disableForUpdate ? readLoader : createEntityLoader(LockMode.PESSIMISTIC_WRITE));
loaders.put(LockMode.PESSIMISTIC_FORCE_INCREMENT, disableForUpdate ? readLoader : createEntityLoader(LockMode.PESSIMISTIC_FORCE_INCREMENT));
loaders.put(LockMode.OPTIMISTIC, createEntityLoader(LockMode.OPTIMISTIC));
loaders.put(LockMode.OPTIMISTIC_FORCE_INCREMENT, createEntityLoader(LockMode.OPTIMISTIC_FORCE_INCREMENT));
loaders.put("merge", new CascadeEntityLoader(this, CascadingActions.MERGE, getFactory()));
loaders.put("refresh", new CascadeEntityLoader(this, CascadingActions.REFRESH, getFactory()));
}
Aggregations