2010-03-04 2 views
6

나는 유효성 검사기를 추가하기를 원하는 JSF 2.0 응용 프로그램을 가지고 있습니다. 앱 아키텍처의 기본 개요는 다음과 같습니다.EJB 3.1, JSF2.0 및 JPA에서 Bean 유효성 검사를 사용해야합니까?

내 JPA 주석 클래스 및 EJB의 인스턴스를 포함하는 관리 백업 Bean이 있습니다. EJB는 트랜잭션으로 데이터베이스에 액세스합니다. JPA 어노테이션이 적용된 클래스는 내 페이스 렛에 값을 설정합니다 (EJB 액세스를 위해 EJB를 사용합니다).

잠재적으로 Bean 유효성 검사를 사용하고 사용자 지정 제약 조건을 작성하고 싶습니다. 그러나이 제약 조건은 JPA 주석 클래스에 추가해야합니다. 이것은 내 관심사의 분리를 위반하는 것 같다. (JPA 주석 클래스/DAO와의 프리젠 테이션/검증의 혼합)이 경우 Bean 검증을 사용하지 않는 것이 더 좋습니까? 내 구조에 결함이 있습니까? 이 일에 대해 내가 알지 못하는 선호하는 방법이 있습니까?

감사합니다.

답변

5

유효성 검사는 비즈니스 논리의 일부이므로 영구 모델 인 도메인 모델에 있어야합니다. 따라서 JPA 엔티티 내에 이들을 갖는 데는 아무런 문제가 없습니다.

프리젠 테이션 계층을 변경하더라도 (EJB에서 많은 웹 서비스를 노출한다고하더라도) 유효성 검사가 여전히 존재해야하기 때문에 유효성 검사는 프레젠테이션에 속하지 않습니다.

관련 문제