HibernateTemplate
8.4. 기능구현 여기서 던졌던 의문에 실마리를 찾은 듯...
HibernateTemplate은 Spring에 있는 API로 Hibernate를 사용해서 데이타에 접근하는 것을 좀 더 편리하게 해주고 Checked Exception인 HibernateException을 Unchecked인 DataAccessException으로 바꿔 준다고 합니다.
@SuppressWarnings("unchecked")
public List<KMember> getMembers(final String name) {
return getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session s) throws HibernateException, SQLException {
Query q = s.createQuery("from k_Member m where m.name like :name order by m.name asc")
.setParameter("name", "%" + name +"%");
return q.list();
}
});
}
public List<KMember> getMembers(final String name) {
return getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session s) throws HibernateException, SQLException {
Query q = s.createQuery("from k_Member m where m.name like :name order by m.name asc")
.setParameter("name", "%" + name +"%");
return q.list();
}
});
}
@SuppressWarnings("unchecked")
public List<KMember> getMembers(final String name) {
Session s = getSession();
Query q = s.createQuery("from k_Member m where m.name like :name order by m.name asc")
.setParameter("name", "%" + name +"%");
return q.list();
}
public List<KMember> getMembers(final String name) {
Session s = getSession();
Query q = s.createQuery("from k_Member m where m.name like :name order by m.name asc")
.setParameter("name", "%" + name +"%");
return q.list();
}
위나 아래나 같은 일을 하는 것 처럼 보이지만.. 아래는 Exception에 대한 고려도 없고 Session을 열고 닫아 주는 일을 수동으로 해줘야 하는 군요. HibernateTemplate API를 대강 읽어봤는데 역시 영어 실력이 OTL...