Пользовательский загрузчик классов для Hibernate-mapping - PullRequest
3 голосов
/ 06 декабря 2010

Кто-нибудь знает способ перехвата вызова, который Hibernate сделает для создания экземпляра класса, указанного в файле .hbm.xml?Мне нужен способ использовать пользовательский ClassLoader для предоставления экземпляра.Я не хочу изменять загрузку класса для Hibernate в целом, просто для экземпляра сопоставленного класса «POJO».

<hibernate-mapping>
    <class name="com.foo.Bar" table="Bar">

В приведенном выше примере кода, когда Hibernate хочет создать экземпляр Bar Мне нужно предоставить этому классу собственный код, а не полагаться на поведение загрузки классов по умолчанию.

Заранее благодарим за понимание,
saethi

1 Ответ

1 голос
/ 07 декабря 2010

Вы можете настроить способ, которым Hibernate создает сущности с помощью пользовательского Tuplizer. См. Документацию по гибернации, глава 4.5 .

Вы можете расширить PojoEntityTuplizer и переопределить метод buildInstantiator(PersistentClass persistentClass), вернув экземпляр Instantiator, который создает сущности так, как вы предпочитаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...