0

以下のコード スニペットに示すようにorg.springframework.orm.hibernate3.HibernateTemplate、DAO のデータ アクセスに を使用しています。この場合、休止状態とJPAを混在させているということですか?

これまでに、データ アクセス メカニズムに JPA と Hibernate の両方を混在させてはならないことを読みました。純粋な hibernate( org.hibernate.*API) または JPA の Hibernate 実装 ( java.persistance.* API) に常に固執する必要があります。しかし、休止状態の統合では、純粋な休止状態または JPA を使用していませんか? それは正しいですか、それとも概念を誤解していましたか。

基本的に、春に提供される休止状態の統合スタイルがデータアクセスのベストプラクティスであることを知りたいですか?

@Repository
@Transactional
public class DAOImpl implements DAO {

    private Log logger = LogFactory.getLog(this.getClass());

    protected org.springframework.orm.hibernate3.HibernateTemplate
            template = null;

    @Resource(name = "abcSessionFactory")
    protected SessionFactory sessionFactory;

    @Autowired
    public void init(SessionFactory sessionFactory) {
        setSessionFactory(sessionFactory);
    }

    public void setSessionFactory(SessionFactory sessionFactory) {
        template = new org.springframework.orm.hibernate3.
                HibernateTemplate(sessionFactory);
    }
}

以下は私のcontex.xml構成です

<bean id="abcSessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="abcDataSource" />
        <property name="packagesToScan"
            value="xxxx" />

        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.connection.driver_class">${hibernate.connection.driver.class}</prop>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.current_session_context_class">${hibernate.current_session_context_class}</prop>
                <prop key="hibernate.cache.use_second_level_cache">false</prop>
                <prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory
                </prop>
                <prop key="hibernate.validator.apply_to_ddl">false</prop>
                <prop key="hibernate.validator.autoregister_listeners">false</prop>
            </props>
        </property>
    </bean>
4

1 に答える 1