2013-04-02 2 views
1

Я хочу: @Autowire Session session. Для спящего режима 3 процесс описан here. он использует ... hibernate3.SessionFactoryUtils.getSession. но весной 3.2 нет такого метода в ... hibernate4.SessionFactoryUtilsавтоподдержка спящий режим с пружиной 3 и спящий режим 4

+0

Вы можете вводить 'SessionFactory' и использовать' sessionFactory.getCurrentSession() ' –

+1

да, я знаю, но это просто ... слишком многословно. если я могу ввести entityManager с jpa, тогда я должен уметь вводить сеанс с помощью некоторого механизма прокси. я просто не знаю, как ... но :) – piotrek

ответ

3

Значительные изменения произошли в Spring3.x, несколько дней назад я встретил ту же проблему. Через официальный документ мы знаем, что весна выиграла ' т обеспечивают HibernateTemplate и HibernateDaoSupport больше, мы рекомендуем использовать Hibernate чистый API, и о вашей путаницы здесь мое решение:

первый, определить SessionFactory боб в applicationContext.xml,

<!-- sessionFactory --> 
    <bean id="sessionFactory" 
      class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="packagesToScan"> 
      <list> 
       <value>com.bbs.*.entity</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect"> 
        ${hibernate.dialect} 
       </prop> 
       <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
       <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> 
       <prop key="hibernate.connection.autocommit">${hibernate.connection.autocommit}</prop> 
       <prop key="hibernate.connection.url">jdbc:mysql://localhost/bbs</prop> 
       <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop> 
       <prop key="hibernate.connection.username">root</prop> 
       <prop key="hibernate.connection.password">123456</prop> 
      </props> 
     </property> 
     <property name="dataSource"> 
      <ref bean="dataSource" /> 
     </property> 
    </bean> 

, а затем , в вашем DAO

@Autowired 
@Qualifier("sessionFactory") 
private SessionFactory sessionFactory; 

public Session getSession() { 
    return sessionFactory.getCurrentSession(); 
} 

таким образом вы получите гибернации сессию, то делать то, что вы хотите, просто наслаждайтесь :)

+0

Вот что я делаю. –

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