최대 절전 모드 Dao 지원이 권장되지 않는 이유는 무엇입니까?
저는 최근에 Hibernate 3.5와 Spring 3으로 작업을 하고 있는데, Hibernate는 꽤 새로웠고 생각했습니다.HibernateDaoSupport
봄의 수업은 나의 도메인 수업과 함께 Hibernate를 사용하는 것을 멋지고 쉽게 만들었습니다.
하지만, 관련 없는 질문을 검색하는 동안 누군가가 언급하는 것을 보았습니다.HibernateDaoSupport
Spring 및 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
'source' 카테고리의 다른 글
SPA 프런트엔드를 위한 Spring Framework 5.3+, Spring Boot 2.3+ 라우팅 구성 (0) | 2023.09.03 |
---|---|
Galera 클러스터가 있는 MariaDB에서 파티션 회전 (0) | 2023.09.03 |
문자열 외부 키로 인한 Larvel MariaDB 구문 오류 (0) | 2023.09.03 |
무한 루프를 구현할 때 (1) 대 (;;) 대 (C)로 이동하는 동안 사용하는 것에 차이가 있습니까? (0) | 2023.09.03 |
RC.1에서는 바인딩 구문을 사용하여 일부 스타일을 추가할 수 없습니다. (0) | 2023.09.03 |