Я использовал инструмент Java под названием DODS, который был разработан приблизительно. 2000 с сервером приложений Enhydra. DODS все еще здесь: http://www.enhydra.org/tech/dods/
Способ работы DODS, который соответствует вашей цели проверки во время компиляции, заключается в том, что это инструмент генерации кода. Он генерирует классы Java, соответствующие таблицам в вашей базе данных. Экземпляры объектов этих классов имеют методы получения и установки для каждого столбца в таблице. Конечно, если вы измените структуру своей базы данных, вам придется заново генерировать код Java с использованием DODS.
Пока вы поддерживаете сгенерированный код в соответствии со структурой вашей базы данных, он обеспечивает проверку во время компиляции, что любой код приложения, использующий эти классы, запрашивает допустимые таблицы и столбцы.
Во всяком случае, я понимаю, что вы отметили свой вопрос с C # и ASP.NET. Инструмент, который генерирует код Java, не будет таким полезным для вас. Но для .NET может существовать другой инструмент, более конкретно работающий по тому же принципу генерации кода, который сопоставляется со структурой базы данных. Поэтому я бы рекомендовал ограничить ваш поиск инструментами .NET ORM, которые что-то говорят о генерации кода.