2

やりたいこと: @Autowire Session session. hibernate 3 の場合、プロセスはこちらで説明されています。...hibernate3.SessionFactoryUtils.getSession を使用します。しかし、Spring 3.2 には ...hibernate4.SessionFactoryUtils にそのようなメソッドはありません

4

1 に答える 1

4

Spring3.x で大きな変更が行われました。数日前に同じ問題に遭遇しました。公式ドキュメントを通じて、Spring が HibernateTemplate と HibernateDaoSupport を提供しなくなることがわかっているため、Hibernate 純粋な API を使用することをお勧めします。ここでの混乱は私の解決策です:

最初に、applicationContext.xml で sessionFactory Bean を定義します。

<!--  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();
}

このようにして、休止状態のセッションを取得し、必要なことを行い、それを楽しんでください:)

于 2013-04-02T13:33:42.223 に答える