3

私はSpring3とDAOおよびBOクラスを学び、それを使って自動配線する方法を学ぼうとしていますが、これがsessionFactoryを配線する正しい方法であると思っていました。

public void save(Customer customer) {
    sessionFactory.getCurrentSession().save(customer);
}

それよりも

public void save(Customer customer){
    getHibernateTemplate().save(customer);
}

では、sessionFactoryを配線する正しい方法は次のとおりですか?

CustomHibernateDaoSupportクラス

package com.fexco.helloworld.web.util;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public abstract class CustomHibernateDaoSupport extends HibernateDaoSupport
{    
@Autowired
@Qualifier("sessionFactory")
public void seSessionFactory(SessionFactory sessionFactory) {

    this.setSessionFactory(sessionFactory);
}
}

CustomerDaoImplクラス

package com.fexco.helloworld.web.dao;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.fexco.helloworld.web.model.Customer;
import com.fexco.helloworld.web.util.CustomHibernateDaoSupport;

@Repository("customerDao")
public class CustomerDaoImpl extends CustomHibernateDaoSupport implements CustomerDao{


@Autowired
private SessionFactory sessionFactory;

public void save(Customer customer) {
    sessionFactory.getCurrentSession().save(customer);
}

これは正しいですか、それとも動作させることができないためにどこかで間違いを犯していますか?ありがとう

4

1 に答える 1

1

Hibernate 3 でテンプレートが必要ない理由の説明は次の とおりですhttp://blog.springsource.com/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor-jpatemplate/

于 2012-04-13T16:50:48.827 に答える