7

注釈のみとファイルで Hibernate 4 を使用しようとしていhibernate.cfg.xmlます。私は独自の注釈を作成し、リフレクションを使用してこれを構成に追加しています。この方法で Hibernate 4 を問題なく使用できますが、私の構成は非推奨の方法を使用して構築されています。

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 を正しく構成するにはどうすればよいですか? エラーを引き起こし、不必要な困難に直面しているようです。

4

1 に答える 1

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-6183およびHHH-2578

于 2012-08-23T07:26:12.223 に答える