Ваша проблема, кажется, является крайним случаем довольно нормального варианта использования .. (varchar to clob ... :))
Вы не упомянули ни одного фреймворка ORM, и я предполагаю, что вы не используете Hibernate,
Первое решение, которое приходит мне в голову, это использование JSR 303 .Это очень масштабируемая, не навязчивая структура проверки.Вы можете реализовать этот фреймворк на любом желаемом уровне.Чтобы объединить все это, вы можете предоставить одно пользовательское ограничение validator , которое будет внутренним образом загружать максимальные и минимальные значения в зависимости от поля.Идея состоит в том, чтобы передать параметр через аннотацию, указав имя поля, сохранив минимальное-максимальное значение каждого имени поля в некотором внешнем файле свойств.Таким образом, валидатор будет динамически загружать минимальное максимальное значение на основе имени поля.
Таким образом, у вас есть настроенная структура для проверки каждого поля на основе ограничений, хранящихся в файле свойств.Вы можете использовать одно и то же ограничение как в своей презентации, так и на уровне DAO.
Конечно, одна вещь остается без ответа.
1. Как распространить это изменение на базовую базу данных.Вы могли бы предоставить максимально возможную длину в базе данных и устранить несоответствия на уровне своего приложения, но это может повлиять на производительность.(хотя, я сомневаюсь, что это произойдет. Oracle очень и очень умен в своем CBO).
Ищите здесь общий пример .
PS: я никогда не пробовалэта настройка сама, но это определенно возможно.