Extension point for loaders which use a SQL result set with "unexpected" column aliases.
| Method from org.hibernate.loader.custom.CustomLoader Detail: |
protected void autoDiscoverTypes(ResultSet rs) {
try {
Metadata metadata = new Metadata( getFactory(), rs );
List aliases = new ArrayList();
List types = new ArrayList();
rowProcessor.prepareForAutoDiscovery( metadata );
for ( int i = 0; i < rowProcessor.columnProcessors.length; i++ ) {
rowProcessor.columnProcessors[i].performDiscovery( metadata, types, aliases );
}
resultTypes = ArrayHelper.toTypeArray( types );
transformerAliases = ArrayHelper.toStringArray( aliases );
}
catch ( SQLException e ) {
throw new HibernateException( "Exception while trying to autodiscover types.", e );
}
}
|
protected CollectionAliases[] getCollectionAliases() {
return collectionAliases;
}
|
protected int[] getCollectionOwners() {
return collectionOwners;
}
|
protected CollectionPersister[] getCollectionPersisters() {
return collectionPersisters;
}
|
protected EntityAliases[] getEntityAliases() {
return entityAliases;
}
|
protected Loadable[] getEntityPersisters() {
return entityPersisters;
}
|
protected LockMode[] getLockModes(Map lockModesMap) {
return lockModes;
}
|
public int[] getNamedParameterLocs(String name) throws QueryException {
Object loc = namedParameterBindPoints.get( name );
if ( loc == null ) {
throw new QueryException(
"Named parameter does not appear in Query: " + name,
sql
);
}
if ( loc instanceof Integer ) {
return new int[] { ( ( Integer ) loc ).intValue() };
}
else {
return ArrayHelper.toIntArray( ( List ) loc );
}
}
|
protected int[] getOwners() {
return entiytOwners;
}
|
protected String getQueryIdentifier() {
return sql;
}
|
public Set getQuerySpaces() {
return querySpaces;
}
|
protected Object getResultColumnOrRow(Object[] row,
ResultTransformer transformer,
ResultSet rs,
SessionImplementor session) throws HibernateException, SQLException {
return rowProcessor.buildResultRow( row, rs, transformer != null, session );
}
|
protected List getResultList(List results,
ResultTransformer resultTransformer) throws QueryException {
// meant to handle dynamic instantiation queries...(Copy from QueryLoader)
HolderInstantiator holderInstantiator = HolderInstantiator.getHolderInstantiator(
null,
resultTransformer,
getReturnAliasesForTransformer()
);
if ( holderInstantiator.isRequired() ) {
for ( int i = 0; i < results.size(); i++ ) {
Object[] row = ( Object[] ) results.get( i );
Object result = holderInstantiator.instantiate(row);
results.set( i, result );
}
return resultTransformer.transformList(results);
}
else {
return results;
}
}
|
protected String getSQLString() {
return sql;
}
|
public List list(SessionImplementor session,
QueryParameters queryParameters) throws HibernateException {
return list( session, queryParameters, querySpaces, resultTypes );
}
|
public ScrollableResults scroll(QueryParameters queryParameters,
SessionImplementor session) throws HibernateException {
return scroll(
queryParameters,
resultTypes,
getHolderInstantiator( queryParameters.getResultTransformer(), getReturnAliasesForTransformer() ),
session
);
}
|