데이터 레이어에 액세스하려면 스프링 데이터 JPA 을 사용하는 Spring 애플리케이션을 개발 중입니다.Spring Data JPA를 사용하여 DOMAIN-DRIVEN DESIGN 아키텍처를 얻으려면 어떻게해야합니까?
@Repository
@Transactional(propagation = Propagation.MANDATORY)
public interface EntityType1DAO extends JpaRepository<EntityType1, Long> {
//@Query("FROM Room WHERE accomodation = :id")
List<EntityType1> findByEntityType1(EntityType1 entityType1);
}
@Repository
@Transactional(propagation = Propagation.MANDATORY)
public interface EntityType2DAO extends JpaRepository<EntityType2, Long> {
List<EntityType2> findByEntityType2(EntityType2 entityType2);
}
...........................................................................
...........................................................................
...........................................................................
@Repository
@Transactional(propagation = Propagation.MANDATORY)
public interface EntityTypeNDAO extends JpaRepository<EntityTypeN, Long> {
List<EntityTypeN> findByEntityTypeN(EntityTypeN entityTypeN);
}
을 그래서 기본적으로이에서 :
그래서 기본적으로 내가 엔티티 클래스에 관련된 데이터베이스 테이블의 데이터에 액세스 할 수 n 개의 엔티티 클래스 및 N 관련 저장소 클래스, 이런 일이 방법은 n 도메인 클래스 ** n 저장소 클래스에 의해 액세스했습니다.
이 두 도메인 클래스을 공통 개념에 속하는 하위 집합으로 나눌 수 있습니다. 룸, RoomTipologyRoomRate 및 RoomPicture 모두 룸 개념에 속하는 :
예를 들어 내가 좋아하는 엔티티 클래스를 가질 수 있습니다.
그래서 나는 다음과 같은 서비스 클래스를 갖게됩니다 RoomDAO, RoomTipologyDAO, RoomRateDAO 및 RoomPictureDAO.잘 작동하지만 좀 더 DOMAIN-DRIVEN DESIGN 아키텍처를 채택하고 싶습니다.
그래서 나는 봄 응용 프로그램에서 도메인 주도 설계을 구하는 방법에 대한 흥미로운 기사를 발견했다 : http://static.olivergierke.de/lectures/ddd-and-spring/
는 말한다 이전 기사를 읽고 그 :
저장소 - 봄의 구성 요소, 일반적으로 스프링 데이터 저장소 인터페이스입니다. 엔티티와 값 객체에 의존 할 수 있으며, 집계 루트 인 엔티티는 에 집중됩니다.
정확히 무엇을 의미합니까? 내가 (함께 집계 그 예를 RoomAggregation 내 룸, RoomTipologyRoomRate 및 RoomPicture 엔티티 클래스)를 집계 뿌리를 클래스를 만들 수 있다는 것을 의미 @Embedded 주석을 사용하여.
또는 무엇? 스프링 데이터 JPA를 사용하여 내 응용 프로그램에서 도메인 주도 설계을 얻을 수있는 좋은 건축 해결책이 될 수 무엇
?
DDD에서 다른 내용을 읽었습니까? 하나의 매우 간결한 기사에 포함 된 지식에 대한 전체적인 아키텍처 변화를 기반으로하는 것이 가장 좋은 아이디어는 아닙니다. – guillaume31