有没有人知道如何拦截Hibernate将实例化.hbm.xml文件中指示的类的调用?我需要一种方法来使用自定义ClassLoader来提供实例。我不想更改Hibernate的类加载,只是映射“POJO”类的实例化。
<hibernate-mapping>
<class name="com.foo.Bar" table="Bar">
在上面的示例代码中,当Hibernate想要实例化 Bar 时,我需要为该类提供自定义代码,而不是依赖于默认的类加载行为。
提前感谢任何见解,
saethi
答案 0 :(得分:1)
您可以自定义Hibernate使用自定义Tuplizer
创建实体的方式。请参阅hibernate文档chapter 4.5。
您可以扩展PojoEntityTuplizer
,并通过返回buildInstantiator(PersistentClass persistentClass)
实例覆盖Instantiator
方法,该实例可根据您的喜好构建实体。