Использование числового счетчика лучше, чем использование метки времени.Какой бы точной ни была метка времени, возможно, что две версии данных могут быть зафиксированы одновременно и получить одну и ту же метку времени.Используя числовой счетчик (например, update mytable set counter=counter+1, data=? where id=? and counter=?
), каждый раз при изменении строки он получает уникальное значение счетчика.(Укажите исходное значение счетчика в предложении where, если данные были изменены кем-то другим, тогда никакие строки не будут сопоставлены.)
Хотя это не «неявное» решение, я думаю, что все в порядке.В библиотеках, таких как Hibernate, есть средства, позволяющие вам делать подобные вещи автоматически, поэтому вашему коду не нужно беспокоиться об этом.