Как я могу получить имя класса из Hibernate? - PullRequest
1 голос
/ 05 августа 2009

Если вопрос уже решается, могу ли я получить ссылку, поскольку не могу ее найти.

Я ищу, чтобы получить имя сохраненного класса объекта, хранящегося в моей базе данных Hibernate. Когда я смотрю на базу данных внешне, я вижу сохраненные строки, которые имеют имя класса. Как я могу получить имя класса, не создавая объект?

Заранее спасибо.

Редактировать: Нет, я не специально указываю дискриминатор; это на самом деле подклассы хранятся. Я просто пытаюсь получить фактический подкласс объекта.

Ответы [ 2 ]

1 голос
/ 05 августа 2009

Есть несколько способов, в зависимости от того, как ваши экземпляры отображаются в формате базы данных. В обоих случаях первым шагом является получение экземпляра Configuration Hibernate, который содержит конфигурацию сопоставления (см. Документация API ).

Корневой объект - Configuration, искомая информация, вероятно, возвращается getTableMappings(). Вам нужно будет использовать отладчик и исходный код Hibernate и некоторое время, чтобы выяснить, как все работает.

Если вы используете Spring, вам придется найти способ добраться до объекта Configuration. Лучше всего установить точку останова в Configuration.buildSessionFactory(). Это должно дать вам представление.

0 голосов
/ 06 августа 2009

Я создал новое поле в объекте, в котором сохранен его тип. Это то, что я использовал для своего решения, однако я все еще хотел бы получить ответы на вопрос о том, как получить доступ к значению дискриминатора.

...