SyncResolver

SyncResolver (동기화 충돌 해결자)

동기화 충돌이 발생했을 때 애플리케이션이 수동 결정 트리를 사용해 무엇을 할지 정할 수 있게 해주는 프레임워크를 정의합니다. 충돌을 수동으로 해결하는 것은 필수가 아니지만, 충돌이 생겼을 때 애플리케이션에 위임할 수단을 제공합니다.

출처: Java API Reference

본문

충돌이란 RowSet 객체의 특정 행에 대한 원래 값이 데이터 소스의 값과 일치하지 않는 상황을 말합니다. 이는 마지막 동기화 이후 데이터 소스의 행이 변경되었음을 뜻해요. RowSet 객체의 원래 값은 마지막 동기화 직전에 가졌던 값이며, 반드시 초기 값은 아닙니다.

SyncResolver 객체는 SyncResolver 인터페이스를 구현하는 특수한 RowSet 객체입니다. 충돌 상수로는 UPDATE_ROW_CONFLICT, DELETE_ROW_CONFLICT, INSERT_ROW_CONFLICT, NO_ROW_CONFLICT가 있어요. getStatus 메서드는 현재 행의 충돌 상태(충돌 시 RowSet이 시도하던 연산)를 반환합니다.

데이터 소스에서 충돌을 일으킨 값을 가져오는 getConflictValue(int/String), 해결된 값을 설정하는 setResolvedValue(int/String, Object), 다음/이전 충돌 행으로 커서를 옮기는 nextConflict/previousConflict 메서드를 제공합니다.

static final int UPDATE_ROW_CONFLICT
static final int DELETE_ROW_CONFLICT
static final int INSERT_ROW_CONFLICT
static final int NO_ROW_CONFLICT
int getStatus()
Object getConflictValue(int index) throws SQLException
void setResolvedValue(int index, Object obj) throws SQLException
boolean nextConflict() throws SQLException
boolean previousConflict() throws SQLException

더 알아보기 (Learn more)

Java 공식 API