2011-08-02 3 views
1

나는 다른 개체의 복합 개체를 가지고 있습니다. 두 명의 클라이언트가 내부 개체를 두 개의 개별 복사본으로 변경했으며 이러한 변경 내용을 병합하려면 어떻게해야할까요? 그리고 이러한 작업을 지원하는 프레임 워크가 있습니까? 감사합니다. Ohad.개체 병합을 구현하는 방법

+0

두 명의 클라이언트가 무슨 뜻입니까? 분산 된 앱입니까? 이러한 개체가 다른 사용자가있는 다른 컴퓨터에있을 수 있습니까? – Sap

+0

아니요, 그들은 모두 결국 같은 jvm에 있습니다. 클라이언트는 tcp를 사용하여 변경하고자하는 것을 '알립니다'. – oshai

+0

항상 같은 JVM이면 그 객체에 대한 싱글 톤을 생성 할 수 있습니까? 그 방법은 항상 그 객체 만 업데이트합니다. 또한 이러한 객체가 사용자와 같은 실제 개체를 나타내는 경우 병합 작업을 수행 할 캐시 된 개체의 해시 맵을 만들 수 있습니다. – Sap

답변

2

개체가 일반 자바 빈인 경우 반사를 사용하여 2 개의 개체 사이의 모든 속성을 비교할 수 있습니다. Commons BeanUtils이 도움이 될 수 있습니다.

그러나 충돌 해결 전략을 구현해야합니다. 두 클라이언트가 동일한 속성을 변경 한 경우 가장 쉬운 방법은 "the-latest-change-wins"전략입니다. 최신 "lastUpdateTime"을 변경하면 다른 변경 사항을 덮어 씁니다.

관련 문제