public void initialize(Serializable key, SessionImplementor session) throws HibernateException { LOG.debugf("Initializing collection: %s using named query: %s", persister.getRole(), queryName); // TODO: is there a more elegant way than downcasting? AbstractQueryImpl query = (AbstractQueryImpl) session.getNamedSQLQuery(queryName); if (query.getNamedParameters().length > 0) { query.setParameter(query.getNamedParameters()[0], key, persister.getKeyType()); } else { query.setParameter(0, key, persister.getKeyType()); } query.setCollectionKey(key).setFlushMode(FlushMode.MANUAL).list(); }