2015-07-08 3 views
0

У меня есть приложение, которое отображает представления в существующую схему Hibernate, которая широко использует однонаправленное наследование таблицы со значением дискриминатора в столбце CLASSNAME. Что делает мою ситуацию необычной, так это то, что я не поддерживаю все подклассы (значение дискриминатора в сопоставлениях Hibernate) в данных, только те, которые представляют интерес для приложения.Класс по умолчанию для схемы наследования одиночной таблицы Hibernate

Проблема заключается в том, что если приложение встречает неподдерживаемое значение дискриминатора, Hibernate выбрасывает «org.hibernate.WrongClassException», потому что он не может найти сопоставление с требуемым значением дискриминатора.

Что я хотел бы сделать, так это создать подкласс, который будет использовать Hibernate, если значение дискриминатора неизвестно (вместо того, чтобы бросать исключение).

Есть ли способ сделать это?

Спасибо, Ed

ответ

0

Я нашел ответ здесь для тех, кто с помощью аннотаций:

Mapping Hibernate entity for unknown DiscriminatorValue for InheritanceType.SINGLE_TABLE.

Что это не говорит вам, что использовать в файле сопоставления. Я проверил открытый исходный код, и выяснилось, что дискриминатор-значение = «< не является нулевым дискриминатором >» будет делать трюк. Hibernate проверяет это значение (и < нулевой дискриминатор >) и дает им специальную обработку.