7

Estoy tratando de usar Hibernate 4 solo con anotaciones y un archivo hibernate.cfg.xml. He hecho mi propia anotación y estoy usando la reflexión para agregar esto a la configuración. Puedo usar Hibernate 4 de esta manera, pero mi configuración se está construyendo usando un método obsoleto.Hibernate 4 Annotation Configuration

final Configuration configuration = new Configuration(); 
final Reflections reflections = new Reflections(Item.class.getPackage().getName()); 
final Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity.class); 
for (final Class<?> clazz : classes) { 
    configuration.addAnnotatedClass(clazz); 
} 
return configuration.configure().buildSessionFactory(); 

(código obsoleto: buildSessionFactory();).

Incluso la documentación de hibernación 4 muestra cómo crear la configuración de esa manera.

Si trato de utilizar el nuevo método (buildSessionFactory(ServiceRegistry)), no obtengo el mismo resultado, y parece que hay muchos códigos innecesarios para hacer exactamente lo que hace el método obsoleto. Sin embargo, no quiero para seguir usando este estilo, porque me gusta el uso de código obsoleto de todos modos

Mi pregunta es:.? ¿Cómo configurar correctamente Hibernate 4 de sólo un archivo de configuración de la forma descrita anteriormente me parece que acaba de causar errores & cara Dificultades innecesarias

+1

¿Ha tenido un vistazo a este tema: http://stackoverflow.com/questions/8621906/is-buildsessionfactory-deprecated-in-hibernate-4 Hay una respuesta muy bien votado allí. –

Respuesta

9

El código modificado se verá a continuación: -

final Configuration configuration = new Configuration(); 
    final Reflections reflections = new Reflections(Item.class.getPackage().getName()); 
    final Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity.class); 
    for (final Class<?> clazz : classes) { 
     configuration.addAnnotatedClass(clazz); 
    } 
      ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings 
(configuration.getProperties()).buildServiceRegistry();   

    return configuration.buildSessionFactory(serviceRegistry); 

Puede consultar los siguientes enlaces para obtener información: HHH-6183 y HHH-2578.