classloader personalizzato per Hibernate-mapping
-
09-10-2019 - |
Domanda
Qualcuno sa un modo per intercettare la chiamata Hibernate farà per creare un'istanza di una classe ha indicato in un file .hbm.xml? Ho bisogno di un modo per utilizzare un ClassLoader personalizzato per fornire un'istanza. Non voglio a carico cambio di classe per Hibernate in generale, solo l'instantiate della classe mappata "POJO".
<hibernate-mapping>
<class name="com.foo.Bar" table="Bar">
Nel codice Nell'esempio precedente, quando Hibernate vuole creare un'istanza di Bar ho bisogno di fornire quella classe con il codice personalizzato, invece di basarsi sul comportamento predefinito di classe di carico.
Grazie in anticipo per qualsiasi comprensione,
saethi
Soluzione
È possibile personalizzare il modo Hibernate crea entità Tuplizer
personalizzato. Vedere la documentazione di ibernazione, capitolo 4.5 .
È possibile estendere PojoEntityTuplizer
, e l'override del metodo buildInstantiator(PersistentClass persistentClass)
restituendo un'istanza Instantiator
che costruisce entità tuttavia si preferisce.