下面列出了怎么用org.hibernate.loader.JoinWalker的API类实例代码及写法,或者点击链接到github查看源代码。
public ReactiveDynamicBatchingCollectionInitializer(
QueryableCollection collectionPersister,
SessionFactoryImplementor factory,
LoadQueryInfluencers influencers) {
super( collectionPersister, factory, influencers );
JoinWalker walker = buildJoinWalker( collectionPersister, factory, influencers );
initFromWalker( walker );
this.sqlTemplate = walker.getSQLString();
this.alias = StringHelper.generateAlias( collectionPersister.getRole(), 0 );
postInstantiate();
if ( LOG.isDebugEnabled() ) {
LOG.debugf(
"SQL-template for dynamic collection [%s] batch-fetching : %s",
collectionPersister.getRole(),
sqlTemplate
);
}
}
public CascadeEntityLoader(
OuterJoinLoadable persister,
CascadingAction action,
SessionFactoryImplementor factory) throws MappingException {
super(
persister,
persister.getIdentifierType(),
factory,
LoadQueryInfluencers.NONE
);
JoinWalker walker = new CascadeEntityJoinWalker(
persister,
action,
factory
);
initFromWalker( walker );
postInstantiate();
if ( LOG.isDebugEnabled() ) {
LOG.debugf( "Static select for action %s on entity %s: %s", action, entityName, getSQLString() );
}
}
public OneToManyLoader(
QueryableCollection oneToManyPersister,
int batchSize,
String subquery,
SessionFactoryImplementor factory,
LoadQueryInfluencers loadQueryInfluencers) throws MappingException {
super( oneToManyPersister, factory, loadQueryInfluencers );
JoinWalker walker = new OneToManyJoinWalker(
oneToManyPersister,
batchSize,
subquery,
factory,
loadQueryInfluencers
);
initFromWalker( walker );
postInstantiate();
if ( LOG.isDebugEnabled() ) {
LOG.debugf( "Static select for one-to-many %s: %s", oneToManyPersister.getRole(), getSQLString() );
}
}
public DynamicBatchingCollectionLoader(
QueryableCollection collectionPersister,
SessionFactoryImplementor factory,
LoadQueryInfluencers influencers) {
super( collectionPersister, factory, influencers );
JoinWalker walker = buildJoinWalker( collectionPersister, factory, influencers );
initFromWalker( walker );
this.sqlTemplate = walker.getSQLString();
this.alias = StringHelper.generateAlias( collectionPersister.getRole(), 0 );
postInstantiate();
if ( LOG.isDebugEnabled() ) {
LOG.debugf(
"SQL-template for dynamic collection [%s] batch-fetching : %s",
collectionPersister.getRole(),
sqlTemplate
);
}
}
protected BasicCollectionLoader(
QueryableCollection collectionPersister,
int batchSize,
String subquery,
SessionFactoryImplementor factory,
LoadQueryInfluencers loadQueryInfluencers) throws MappingException {
super( collectionPersister, factory, loadQueryInfluencers );
JoinWalker walker = new BasicCollectionJoinWalker(
collectionPersister,
batchSize,
subquery,
factory,
loadQueryInfluencers
);
initFromWalker( walker );
postInstantiate();
if ( LOG.isDebugEnabled() ) {
LOG.debugf( "Static select for collection %s: %s", collectionPersister.getRole(), getSQLString() );
}
}
public CascadeEntityLoader(
OuterJoinLoadable persister,
CascadingAction action,
SessionFactoryImplementor factory)
throws MappingException {
super(
persister,
persister.getIdentifierType(),
factory,
CollectionHelper.EMPTY_MAP
);
JoinWalker walker = new CascadeEntityJoinWalker(
persister,
action,
factory
);
initFromWalker( walker );
postInstantiate();
log.debug( "Static select for action " + action + " on entity " + entityName + ": " + getSQLString() );
}
public OneToManyLoader(
QueryableCollection oneToManyPersister,
int batchSize,
String subquery,
SessionFactoryImplementor factory,
Map enabledFilters)
throws MappingException {
super(oneToManyPersister, factory, enabledFilters);
JoinWalker walker = new OneToManyJoinWalker(
oneToManyPersister,
batchSize,
subquery,
factory,
enabledFilters
);
initFromWalker( walker );
postInstantiate();
log.debug( "Static select for one-to-many " + oneToManyPersister.getRole() + ": " + getSQLString() );
}
protected BasicCollectionLoader(
QueryableCollection collectionPersister,
int batchSize,
String subquery,
SessionFactoryImplementor factory,
Map enabledFilters)
throws MappingException {
super(collectionPersister, factory, enabledFilters);
JoinWalker walker = new BasicCollectionJoinWalker(
collectionPersister,
batchSize,
subquery,
factory,
enabledFilters
);
initFromWalker( walker );
postInstantiate();
log.debug( "Static select for collection " + collectionPersister.getRole() + ": " + getSQLString() );
}
public CollectionElementLoader(
QueryableCollection collectionPersister,
SessionFactoryImplementor factory,
LoadQueryInfluencers loadQueryInfluencers) throws MappingException {
super( factory, loadQueryInfluencers );
this.keyType = collectionPersister.getKeyType();
this.indexType = collectionPersister.getIndexType();
this.persister = (OuterJoinLoadable) collectionPersister.getElementPersister();
this.entityName = persister.getEntityName();
JoinWalker walker = new EntityJoinWalker(
persister,
ArrayHelper.join(
collectionPersister.getKeyColumnNames(),
collectionPersister.toColumns( "index" )
),
1,
LockMode.NONE,
factory,
loadQueryInfluencers
);
initFromWalker( walker );
postInstantiate();
if ( LOG.isDebugEnabled() ) {
LOG.debugf( "Static select for entity %s: %s", entityName, getSQLString() );
}
}
public EntityLoader(
OuterJoinLoadable persister,
String[] uniqueKey,
Type uniqueKeyType,
int batchSize,
LockMode lockMode,
SessionFactoryImplementor factory,
Map enabledFilters)
throws MappingException {
super(persister, uniqueKeyType, factory, enabledFilters);
JoinWalker walker = new EntityJoinWalker(
persister,
uniqueKey,
batchSize,
lockMode,
factory,
enabledFilters
);
initFromWalker( walker );
postInstantiate();
batchLoader = batchSize > 1;
log.debug( "Static select for entity " + entityName + ": " + getSQLString() );
}
public CollectionElementLoader(
QueryableCollection collectionPersister,
SessionFactoryImplementor factory,
Map enabledFilters)
throws MappingException {
super(factory, enabledFilters);
this.keyType = collectionPersister.getKeyType();
this.indexType = collectionPersister.getIndexType();
this.persister = (OuterJoinLoadable) collectionPersister.getElementPersister();
this.entityName = persister.getEntityName();
JoinWalker walker = new EntityJoinWalker(
persister,
ArrayHelper.join(
collectionPersister.getKeyColumnNames(),
collectionPersister.getIndexColumnNames()
),
1,
LockMode.NONE,
factory,
enabledFilters
);
initFromWalker( walker );
postInstantiate();
log.debug( "Static select for entity " + entityName + ": " + getSQLString() );
}