Для HSQL вы можете использовать триггер.Ссылка: http://hsqldb.org/doc/2.0/guide/triggers-chapt.html
Действие триггера в Java
Действие триггера может быть записано как класс Java, который реализует интерфейс org.hsqldb.Trigger.Этот интерфейс имеет единственный метод, который вызывается при активации триггера, до или после события.Когда метод вызывается механизмом, он предоставляет тип триггера в виде значения int, определенного интерфейсом (в качестве аргумента типа), имя триггера (в качестве аргумента trigName), имя таблицы (в качестве аргумента tabName), СТАРЫЙ (как аргумент oldRow) и НОВЫЙ (как аргумент newRow).Аргумент oldRow является нулевым для триггеров INSERT уровня строки.Аргумент newRow является нулевым для триггеров DELETE уровня строки.Для триггеров на уровне таблицы оба аргумента равны нулю (то есть нет доступа к данным).Аргумент triggerType является одной из констант в интерфейсе org.hsqldb.Trigger, которые указывают тип триггера, например, INSERT_BEFORE_ROW или UPDATE_AFTER_ROW.
CREATE TRIGGER t BEFORE UPDATE ON customer
REFERENCING NEW AS newrow FOR EACH ROW
BEGIN ATOMIC
IF LENGTH(newrow.firstname) > 10 THEN
CALL my_java_function(newrow.firstname, newrow.lastname);
END IF;
END