用于Hibernate映射的自定义类加载器

时间:2010-12-06 19:37:20

标签: java classloader hibernate-mapping

有没有人知道如何拦截Hibernate将实例化.hbm.xml文件中指示的类的调用?我需要一种方法来使用自定义ClassLoader来提供实例。我不想更改Hibernate的类加载,只是映射“POJO”类的实例化。

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

在上面的示例代码中,当Hibernate想要实例化 Bar 时,我需要为该类提供自定义代码,而不是依赖于默认的类加载行为。

提前感谢任何见解,
saethi

1 个答案:

答案 0 :(得分:1)

您可以自定义Hibernate使用自定义Tuplizer创建实体的方式。请参阅hibernate文档chapter 4.5

您可以扩展PojoEntityTuplizer,并通过返回buildInstantiator(PersistentClass persistentClass)实例覆盖Instantiator方法,该实例可根据您的喜好构建实体。