最后,使用Spring并不是那么简单。我设法做到了扩展AnnotationSessionFactoryBean像这样:
public class SchemaValidatingAnnotationSessionFactoryBean extends AnnotationSessionFactoryBean {public void validateDatabaseSchema() throws DataAccessException { logger.info("Validating database schema for Hibernate SessionFactory"); HibernateTemplate hibernateTemplate = new HibernateTemplate( getSessionFactory()); hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER); hibernateTemplate.execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Connection con = session.connection(); Dialect dialect = Dialect.getDialect(getConfiguration() .getProperties()); Databasemetadata metadata = new Databasemetadata(con, dialect); Configuration configuration = getConfiguration(); configuration.validateSchema(dialect, metadata); return null; } });}}


