2012-11-20 2 views
0

데이터베이스가 2 개 있습니다. 첫 번째는 ERP의 데이터베이스이고 두 번째는 내 애플리케이션의 db입니다.Spring과 JPA (최대 절전 모드)와의 원격 엔터티 관계

ERP 데이터베이스의 동기화 된 고객 테이블 데이터로 내 앱에서 작업해야합니다. 이제 매 시간마다 석영 작업과 테이블을 동기화합니다. 이 방법으로 나는 지역 고객 테이블을 가지고 있고 내 주문에 외래 키 열을 만드는 데 아무런 문제가 없습니다.

미래에 새로운 앱을 개발할 때이 전략은 좋은 해결책이 아닙니다. (현재는 ..라고 가정) 이 방법으로 작업하는 모든 응용 프로그램에 대해 고객 테이블의 로컬 복사본과 동기화 절차를 갖습니다.

그래서 원격 인터페이스를 사용하여 원격 지원 응용 프로그램을 원격 인터페이스로 구현하려고합니다. 고객. 이 원격 응용 프로그램은 ERP 데이터베이스에 연결되어 있으며 모든 응용 프로그램은 원격 서비스를 호출하여 데이터를 가져옵니다. 이제

제 질문은 다음과 같습니다

  1. 그것은 좋은 방법이 될 수 있습니다 또는 이 구현하는 더 좋은 방법이 있습니까?

  2. 내 주문서에서 고객 항목을 참조하는 방법은 무엇입니까?

    @Entity 
    public class Order{ 
    
        .... 
    
        private Integer customerId; 
    
        @Transient 
        private Customer customer; 
    
        ... 
    } 
    

    을 과도 고객에게 내가 원격 서비스를 호출 에 의해 주문 객체를로드 할 때마다 바인딩 : 난 더 이상 지역의 고객 테이블이없는이 솔루션에 따라 .. 나는 도메인 클래스에서 할 수 있다고 생각합니다. 당신이 나에게 의견이나 더 나은 솔루션을 제공 할 수 있습니다 경우에 따라서 예를 들어 내 있으며, OrderServiceImpl

@Transactional 
public Order getOrder(Integer id){ 
    Order order = orderDao.get(id); 
    order.setCustomer(customerRemoteService.getCustomerById(order.getCustomerId())); 
    return order; 
} 
에서 궁금해!

대단히 감사합니다 !!!!! Marco

답변

1

ERP 데이터베이스에 직접 액세스 할 수 있습니까? 그렇지 않으면 다른 앱을 던질 수 있습니까?

데이터베이스에 직접 액세스 할 수있는 경우 EclipseLink의 복합 지속성 단위 지원을 사용하여 엔터티를 여러 데이터베이스에 매핑 할 수 있습니다.

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Composite_Persistence_Units

+0

나는 .. 제가 직접 DB에 접근 할 수있는 시나리오를 가정 것이 더 좋은 생각 그리고 .. 내가 :-)를 최대 절전 모드 사용하고 있습니다 – gipinani

관련 문제