2013-09-06 8 views
3

Я использую Hibernate 3.3 и Spring 3.2 через java-конфигурацию. Я хотел бы создать фабрику сеансов в моем контексте приложения. Я пытаюсь что-то вроде этогоHibernate 3 sessionFactory весной Конфигурация Java

@Bean 
public SessionFactory sessionFactory() throws Exception { 
    AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean(); 
    sessionFactoryBean.setDataSource(dataSource()); 
    sessionFactoryBean.setPackagesToScan(new String[] { "org.package" }); 

    Properties hibernateProperties = new Properties(); 
    hibernateProperties.put("hibernate.show_sql", true); 
    hibernateProperties.put("hibernate.bytecode.use_reflection_optimizer", false); 
    hibernateProperties.put("hibernate.check_nullability", false); 
    hibernateProperties.put("hibernate.dialect", "org.hibernate.dialect.DB2Dialect"); 
    hibernateProperties.put("hibernate.search.autoregister_listeners", false); 
    sessionFactoryBean.setHibernateProperties(hibernateProperties); 

    return sessionFactoryBean.getObject(); 
} 

Но в последней строке она возвращает null ¿Что я делаю не так?

+0

Я не уверен, работает AnnotationSessionFactoryBean, если вы непосредственно создаете его новый экземпляр. Попробуйте создать экземпляр вместо инъекции зависимостей. Например: http://www.mkyong.com/spring/maven-spring-hibernate-annotation-mysql-example/ – Rafa

ответ

3

Перед возвращением SesionFactory, что вам нужно сделать вызов afterPropertiesSet:

sessionFactoryBean.afterPropertiesSet(); 

, который строит и выставляет SessionFactory.

Смежные вопросы