Editable Table events

Подскажите, пожалуйста, если можно с примером, как ловить события в полях Editable Table? Интересуют события на изменение полей.

Добавьте для контейнера данных вашей таблицы слушатель события ItemPropertyChange.
А в обработчике можно получить экз. сущности, атрибут которой изменился, имя измененного атрибута и его текущее и предыдущее значение.
image

1 симпатия

Что-то я совсем запутался.
В этом событии (ItemPropertyChange) я вижу, что новые данные, что были изменены в таблице Editable Table, попали в контейнер данных (который явлется выборкой из JPA Entity). Но в саму JPA Entity новые данные не записались.
Пытаюсь сделать dataContext.commit, но получаю ошибку “Невозможно сохранить изменения в объект, он занят дргим пользователем или приложением”.
Как мне изменённые в Editable Table данные сохранить в JPA Entity?

Да. Событие срабатывает сразу после внесения изменений в данные на экране, до их камита в БД.

Пытаюсь сделать dataContext.commit, но получаю ошибку “Невозможно сохранить изменения в объект, он занят дргим пользователем или приложением”.

Эта ошибка говорить о том, что с момента загрузки данных на экран и до вашей попытки камита эта сущность уже была изменена и закомичена в другой транзакции. А у вас в контейнере старая версия этой сущности. Срабатывает оптимистическая блокировка.

Тут надо с кодом вашего экрана разбираться.
Явно где-то вы камитите данные в БД, но не обновляете после этого данные в контейнере на экране, потом снова вносите изменения и снова пытаетесь камитить.

1 симпатия