현재 Java-EE6 (GlassFish 3.1.2, MySQL Server 5.1 및 Netbeans 7.1.1)을 사용하는 3 계층 응용 프로그램을 작성 중입니다.Java-EE6 : 계층간에 전달되는 @Entity를 설계하는 방법은 무엇입니까?
- 엔터프라이즈 응용 프로그램/EJB의 :
- 자바 클래스 라이브러리 데이터베이스에 엔티티를 제어하는 외관 :이
이 프로젝트는 현재 3 개 프로젝트로 구성 데이터베이스 모델을 대표하는 @Entity 주석 클래스 (이 프로젝트 서버 자원의 JNDI 룩업 (EJB의 원격 액세스)
엔티티를 생성/수정/삭제할 때 클라이언트의 GUI를 업데이트하기 위해 각 클라이언트가 시작시에 가입하고 EJB 컨테이너의 메시지 구동 Bean이 게시자 역할을하는 Topic을 구현하여 JMS를 사용하기로 결정했습니다. 그때 가입 한 고객에게 업데이트 메시지를 게시해야 엔티티 객체 라이프 사이클 리스너 (등 @PostUpdate를) 부착
- :
는 지금은 다음과 같은 큰 문제에 직면하고 있습니다. 엔티티 클래스는 class-lib 프로젝트에 있지만 게시자는 EE-app에 있습니다. 문제는 EE-app가 class-lib 프로젝트를 참조하지만 순환 프로젝트 참조가 허용되지 않으므로 그 반대가 아니라는 점입니다. 따라서 엔티티 클래스의 라이프 사이클 콜백 메소드에는 EE-app의 메시지 구동 게시자 Bean에 대한 참조가 없습니다.
더 많은 디자인 관련 질문 &이 기본적으로 Java-EE6을 사용하여 3 계층 응용 프로그램을 설계하는 올바른 방법인지 묻는 질문이 있습니까?
가능하면 복잡성을 낮추려면 응용 프로그램이 과도한 네트워크 트래픽을 발생시키지 않도록 가능한 한 DTO/DAO를 피하십시오.
미리 알려 주셔서 감사합니다.
EJB 서버 컨텍스트 외부에서 @Entities를 씩 클라이언트에 보내겠습니까? 관계가 프록시이기 때문에이 엔티티는 직렬화 할 수 없습니다. 어떻게 DTO없이이 작업을 할 수 있습니까? – edutesoy