source

최대 절전 모드 Dao 지원이 권장되지 않는 이유는 무엇입니까?

manycodes 2023. 9. 3. 16:23
반응형

최대 절전 모드 Dao 지원이 권장되지 않는 이유는 무엇입니까?

저는 최근에 Hibernate 3.5와 Spring 3으로 작업을 하고 있는데, Hibernate는 꽤 새로웠고 생각했습니다.HibernateDaoSupport봄의 수업은 나의 도메인 수업과 함께 Hibernate를 사용하는 것을 멋지고 쉽게 만들었습니다.

하지만, 관련 없는 질문을 검색하는 동안 누군가가 언급하는 것을 보았습니다.HibernateDaoSupportSpring 및 Hibernate를 사용하는 가장 좋은 방법은 아닙니다.누구라도 밝혀줄 수 있습니까?

  • 권장되지 않는 이유는 무엇입니까?
  • 하이버네이트와 스프링을 통합하는 가장 좋은 방법은 무엇입니까?

사용.HibernateDaoSupport/HibernateTemplate코드를 불필요하게 Spring 클래스에 연결하기 때문에 권장되지 않습니다.

Spring 관리 트랜잭션 지원을 통합하기 위해 이전 버전의 Hibernate에서는 이러한 클래스를 사용할 수밖에 없었습니다.

그러나 Hibernate 3.0.1은 더 이상 필요하지 않으므로 Spring 관리 트랜잭션을 사용하는 동안 일반 Hibernate API에 대한 코드를 작성할 수 있습니다.필요한 것은 Spring 트랜잭션 지원을 구성하고 주입하기만 하면 됩니다.SessionFactory와 콜getCurrentSession()세션 작업이 필요할 때 사용할 수 있습니다.

의 또 다른 이점HibernateTemplate예외 변환입니다.없이.HibernateTemplate다음을 사용하여 동일한 기능을 달성할 수 있습니다.@Repository개러스 데이비스의 답변에 나타난 바와 같이 주석.

참고 항목:

제가 보기에 사용하는 것은 아무런 문제가 없습니다.HibernateDaoSupport봄 3.0에서는 사용되지 않습니다.

발견한 질문 번호를 제공할 수 있습니까? 매우 구체적인 사용 사례를 참조할 수 있습니다.

대안은 다음을 사용하는 것입니다.@Repository주석이는 동일한 예외 번역으로 연결됩니다(가장 큰 이점 중 하나).HibernateTemplate사용자 자신의 슈퍼 클래스를 사용하거나 타사 프레임워크 클래스를 확장하지 않도록 할 수 있습니다.

@Repository
public class YourFooDao {

    @Resource
    private SessionFactory sessionFactory;

    private Foo get(long id){
        return (Foo) sessionFactory.getCurrentSession().get(id);
    }
}

언급URL : https://stackoverflow.com/questions/5104765/why-is-hibernatedaosupport-not-recommended

반응형