7

注釈付きのHibernate 4と、hibernate.cfg.xmlファイルを使用しようとしています。私は自分の注釈をつけて、反射を使ってこれを設定に追加しています。私はこの方法でHibernate 4をうまく使用することができますが、私の設定は廃止予定のメソッドを使って構築されています。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(); 

(非推奨コード:buildSessionFactory();)です。

hibernate 4のドキュメントでも、このように構成を構築することが示されています。

新しいメソッド(buildSessionFactory(ServiceRegistry))を使用しようとすると、同じ結果が得られません。また、廃止されたメソッドがとにかく何をするのかが不必要なコードのように思えます。 。私はとにかく非推奨のコードを使用して嫌いので、このスタイルを使用して維持することが

私の質問は:どのように私は正しく、上記のように、単に構成ファイルからHibernateは4に設定するのです私はエラーに&顔を起こしているように見えます?

+1

あなたはこのスレッドを見たことがあり: http://stackoverflow.com/questions/8621906/is-buildsessionfactory-deprecated-in-hibernate-4 非常によく投票答えはそこにあります。 –

答えて

9

変更後のコードは次のようになります。 -

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); 

HHH-6183HHH-2578の情報については、次のリンクを参照してください。

関連する問題