【问题标题】:Spring 3 and Hibernate 4 DaoSpring 3 和 Hibernate 4 道
【发布时间】:2012-10-29 11:44:52
【问题描述】:

我发现 HibernateTemplate 已从 Hibernate 4 中删除,我应该如何配置 Dao 应用程序上下文 xml 文件?

【问题讨论】:

标签: java spring dao hibernate-4.x


【解决方案1】:

我在我的 DAO 课程中使用sessionFactory.getCurrentSession()。而Spring的配置是这样的:

<bean id="dataSource"
      class="org.springframework.jdbc.datasource.DriverManagerDataSource"
      p:driverClassName="${jdbc.driverClassName}"
      p:url="${jdbc.url}"
      p:username="${jdbc.username}"
      p:password="${jdbc.password}"/>

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="annotatedClasses">
        <list>
            <value>my.package.entity.Account</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>

所以现在你应该使用例如:

@Autowired
private SessionFactory sessionFactory;

public void save(YourEntity entity) {
    sessionFactory.getCurrentSession().save(entity);
}

将您的 HibernateTemplate 更改为 SessionFactory

【讨论】:

  • 谢谢。以前我有一个引用 HibernateTemplate 的 DAO bean,但现在我该怎么处理它?此外,spring config 需要哪些引用?
  • 编辑了答案。这也是您需要的所有弹簧配置。
  • 太棒了!它适用于保存。但是当我将它用于 showAllEntity() 时,它会引发异常。 public List showAllEntity(){ return sessionFactory.getCurrentSession().createQuery("from Enity").list();}
  • 尝试使用:return sessionFactory.getCurrentSession().createQuery("from " + MyEntity.class.getName()).list();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多