Я могу придумать 3 варианта:
(1): добавьте предложение WHERE field IN(<list of valid values>)
ко всем запросам к этой таблице + поле.
(2): Очистите базу данных и добавьте ограничение в поле, чтобы в нем не могло быть недопустимых значений.
(3): Добавьте недопустимую опцию (я предполагаю, что это enum?) К вашей сущности и отфильтруйте ее в собственном коде. Это может нарушить правильное разбиение на страницы запросов. Это также быстро запутается, если у вас будет большое количество недопустимых значений.
Редактировать
(4): создание пользовательского типа гибернации (UserType). Там вы можете разобрать значение вручную из подготовленной выписки / набора результатов. Это позволяет (вместо создания исключения) отображать «недопустимые» значения в null
или любое другое значимое значение, которое вы можете обработать.