Le suivant exprime l'expérience que j'ai eu avec hibernate 4.0.0.Final.
La javadoc (distribué sous licence LGPL) org.hibernate.cfg.Configuration
classe stipule que:
NOTE : Ce sera remplacée par l'utilisation d' ServiceRegistryBuilder
et
org.hibernate.metamodel.MetadataSources
au lieu de cela, après la version 4.0 à quel point cette classe va devenir obsolètes et devraient être supprimés dans la version 5.0. Voir HHH-6183, HHH-2578et
HHH-6586 pour plus de détails
Après avoir regardé problème 2578, j'ai utilisé quelque chose comme ceci:
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().configure().buildServiceRegistry();
MetadataSources metadataSources = new MetadataSources(serviceRegistry);
metadataSources.addResource("some_mapping.hbm.xml")
SessionFactory sessionFactory = metadataSources.buildMetadata().buildSessionFactory();
Pour démarrer la lecture de la configuration, j'ai dû modifier mon hibernate 3.2.6 de la configuration et des fichiers de mappage d'utiliser xmlns="http://www.hibernate.org/xsd/hibernate-configuration"
et xmlns="http://www.hibernate.org/xsd/hibernate-mapping"
et également supprimer la dtd cahier des charges.
Je ne pouvais pas trouver un moyen pour elle d'inspecter les mappages définis dans hibernate.cfg.xml et hibernate. préfixe pour hibernate-propriétés liées à hibernate.cfg.xml n'est plus facultatif.
Cela peut fonctionner pour certains.
J'ai, pour l'une, a couru dans une erreur, car la cartographie des fichiers contenus <cache usage="read-write" />
et s'est terminé vers le haut en utilisant déconseillé de Configuration de voie:
Configuration configuration = new Configuration().configure();
SessionFactoryImpl sessionFactory = (SessionFactoryImpl) configuration.buildSessionFactory();
EventListenerRegistry listenerRegistry = sessionFactory.getServiceRegistry().getService(EventListenerRegistry.class);
SolrIndexEventListener indexListener = new SolrIndexEventListener(); // a SaveOrUpdateEventListener i wanted to attach
listenerRegistry.appendListeners(EventType.SAVE_UPDATE, indexListener);
J'ai dû par programmation d'ajouter des écouteurs d'événement, parce que la Configuration ne regarde plus dans hibernate.cfg.xml