Znalazłem to, aby uzyskać RowId. Z queryChangeDescription
możesz pobrać TabeleChangeDesciptions
który nie ma nic wspólnego z TableChangeDecription ze zdarzenia. Jeśli są zmiany w więcej niż jednym stole, te tabele są wymienione w tablicy. Ponieważ jestem zarejestrowany tylko w jednym stole, nie muszę iterować po liście.
Po zapoznaniu się z TableChangeDescription
możesz uzyskać RowChangeDescription
dla każdego zmienionego rzędu. Z tego możesz uzyskać RowId.
for (QueryChangeDescription queryChangeDescription : databaseChangeEvent.getQueryChangeDescription()) {
RowChangeDescription[] rowChangeDescriptions = queryChangeDescription.getTableChangeDescription()[0].getRowChangeDescription();
for (RowChangeDescription rowChangeDescription : rowChangeDescriptions) {
handleEvent(rowChangeDescription.getRowid());
}
}