EJB 데이터 중개자 서비스 데이터 업데이트
EJB(Enterprise JavaBeans) 중개자 요청은 복합 EJB 조회입니다. 업데이트된 DataGraph를 applyChanges 메소드를 사용하여 데이터 소스에 다시 작성할 수 있습니다.
업데이트는 데이터 소스나 EJB 인스턴스를 통해 바로 적용될 수 있습니다.
EJB 인스턴스를 통해 변경사항을 적용하면 선택사항 어댑터 클래스는 applyChanges 메소드에서 지정될 수 있습니다. 변경된 각 데이터 오브젝트는 먼저 어댑터 applyChange 메소드에 전달됩니다. 어댑터는 변경 자체를 처리하고 true를 리턴하거나, 또는 EJB 중개자가 false를 리턴하여 변경을 처리할 수 있게 합니다.
어댑터는 낙관적 동시(OCC) 논리를 사용자 정의하거나 DataGraph 속성만을 읽도록 변경을 처리하거나, 또는 비즈니스 논리가 필요한 변경을 처리할 수 있습니다.
두 양식의 applyChanges 메소드가 있습니다. 첫 번째 양식, applyChanges(DataObject)는 업데이트된 DataGraph를 사용하며 데이터베이스에 대해 바로 SQL(Structured Query Language) insert, update 및 delete 명령문을 실행하며 EJB 컨테이너를 무시합니다. 두 번째 양식, applyChanges(DataObject, MediatorAdapter) 프로세스는 EJB 인스턴스 및 액세서를 사용하여 업데이트합니다. MediatorAdapter의 널 값이 지원됩니다.
applyChanges로 어댑터를 사용하는 경우
- create(PrimaryKey)가 아닌 create 메소드인 경우 사용
- 비즈니스 메소드가 CMP(Container-Managed Persistence) setter 메소드 대신 호출되어야 하는 경우 사용
- 특수 낙관적 캐싱 논리가 필요한 경우 사용
어댑터 작동 방식
DataGraph 로그에 대해 세 패스가 작성되어 변경된 DataObject가 어댑터에 전달됩니다.
- 새 DataObject가 전달됩니다. 어댑터는 오브젝트를 작성하고 CMP 필드를 설정할 수 있습니다. 아직 작성되지 않은 엔터프라이즈 Bean을 참조하는 CMR(Container-Managed Relationships)은 패스 2까지 지연됩니다.
- 업데이트된 새 DataObjects가 전달됩니다. 패스 1에서 지연된 CMR은 이때 설정될 수 있습니다.
- 삭제된 DataObjects가 전달됩니다.