[SPRING] 일반 또는 특정 DAO가 여러 테이블의 정보로 배달을 기록합니까?
SPRING일반 또는 특정 DAO가 여러 테이블의 정보로 배달을 기록합니까?
사용자가 봄과 최대 절전 모드를 사용하는 GUI를 통해 DB에서 정보를 저장하고 검색 할 수있게 해주는 웹 응용 프로그램을 만들고 있습니다.
나는 DAO와 서비스 계층을 만들 때 막혔다. 새로운 전달을 추가 할 수있는 메소드를 만들고 싶습니다. 내 배송 테이블에는 제품 ID, 제품 유형 및 고객 이름, 고객 국가가 각각 포함 된 자체 테이블에 매핑 된 제품 ID 및 고객 ID가 있습니다.
문제가있는 부분은 최종 사용자가 제품 유형, 제품 이름, 고객 이름, 고객 국가 및 날짜를 입력하여 납품을 기록하기를 원합니다. 나,
(1) 이러한 개체를 포함하는 새 배달을 추가하는 방법으로 DAO를 만듭니다.
또는
(2) 일반 객체를 DB에 저장 한 다음 각 개별 객체에 대해 DAO를 구현하는 서비스 메소드를 사용하는 DAO를 작성 하시겠습니까?
도와 줘서 고마워!
/디
해결법
-
==============================
1.다음은 각 서비스 계층 클래스에 주입하는 일반적인 제 DAO 스 니펫입니다.
다음은 각 서비스 계층 클래스에 주입하는 일반적인 제 DAO 스 니펫입니다.
@Component("Dao") public class Dao implements IDao { @Resource(name = "sessionFactory") private SessionFactory sessionFactory; @Override public <T> T save(final T o){ return (T) sessionFactory.getCurrentSession().save(o); } @Override public void delete(final Object object) { sessionFactory.getCurrentSession().delete(object); } @Override public <T> T get(final Class<T> type, final Long id) { return (T) sessionFactory.getCurrentSession().get(type, id); } @Override public <T> List<T> getFieldsEq(final Class<T> type, final Map<String, Object> restrictions) { final Session session = sessionFactory.getCurrentSession(); final Criteria crit = session.createCriteria(type); for (Map.Entry<String, Object> entry : restrictions.entrySet()) { crit.add(Restrictions.eq(entry.getKey(), entry.getValue())); } return crit.list(); } }
다음과 같이 서비스 계층에서 사용할 수있는 암탉은 무엇입니까?
@Transactional(readOnly = true) public List<City> getCities() { return dao.getAll(City.class); }
물론 특정 복잡한 쿼리에 대해 DAO를 확장 할 수도 있습니다. 하나의 일반적인 DAO가 단일 책임 원칙 인 DRY를 준수하고 테스트하기가 더 쉽습니다. 트랜잭션은 서비스 계층에 있어야하며 작업 단위와 직접 관련되어야합니다.
from https://stackoverflow.com/questions/10173331/general-or-specific-dao-to-record-delivery-with-information-from-multiple-tables by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] "userDao"라는 bean이 정의되지 않았습니다. (0) | 2019.05.28 |
---|---|
[SPRING] 콩 인스턴스화 전에 스프링 부팅 응용 프로그램의 모든 활성 속성을 기록하는 방법? (0) | 2019.05.28 |
[SPRING] aop.xml 이름과 위치? (0) | 2019.05.28 |
[SPRING] varargs를 Spring spEL에 전달하면 "com.sun.proxy에서 메서드를 찾을 수 없습니다." (0) | 2019.05.28 |
[SPRING] 검색 폼에서 데이터 액세스 속도 향상 (0) | 2019.05.28 |