Я бы предложил XML.
Структура моей таблицы:
Audit_id, операция, preImage, postImage, userId, datetime, entityName, отметка времени
Тогда я бы отобразил этоскажем AuditBean, я бы использовал JPA, в спящем режиме, если бы у меня была возможность использовать Spring AOP для обновления таблицы аудита при обновлении структуры таблицы.
Одна вставка таблицы, которая имела бы preImage и postImage.
Для генерации XML я думаю, что XStream является одним из самых простых в использовании.
Все таблицы, которые должны быть Audit, я бы пометил их как XMLConvertable (чтобы я мог легко получить ClassПсевдоним и другие поля псевдонимов для XStream) и Auditable (чтобы мой код AOP мог извлечь preImage из, скажем, базы данных)