2011-11-29 10 views
10

注釈と設定ファイルの間を厳密に選択する必要がありますか?同じプロジェクトで両方の方法を同時に使用することは可能ですか?Hibernate内の同じプロジェクトで注釈とhbm.xmlファイルの両方を使用できますか?

私たちは大きなプロジェクトを、Hibernate 3.2.5とPOJOで.hbm.xmlファイルで構成しました。このプロジェクトでは、Hibernate SessionManager Factoryが使用され、JTAベースのEntityManagerファクトリは使用されません。

このように構成されたPOJOは100以上あり、元のデベロッパーチームはアノテーションに切り替えることに嫌気がします。

一方、私たちはHibernateアノテーションで構成したいと思うより多くのPOJOでプロジェクトを拡張する必要があり、可能ならばHibernateにとどまり、JPAへの切り替えはしたくありません。

いくつかのPOJOと注釈に対して同時に.hbm.xml設定ファイルを組み合わせて使用​​することはできますか?

+1

NetBeansなどのツールのバグや多くの場合Eclipseでさえも、コード化して構成するときにエラーが発生することがよくあります。だから、何人かのJava専門家でさえ「夢中ではない、試したことがない」と言うと、自分のエラーであるかIDEであるかを確かめることなく、試行錯誤を無駄にしないだろう。 /休止状態。 – Skyhan

答えて

7

Manuが回答を与えましたが、アノテーションに切り替えて、そのhbm.xmlを注釈に変換する必要がある場合です。続けてください。 pojoクラスを生成するツールを、既存のテーブルの注釈とともに使用することができます。これらのツールを使用しても、前と同じようにpojosを生成するだけで他のコードを変更する必要はありません。つまり、プロパティ名を変更しないでください。私は同じようなプロジェクトに取り組んでおり、そのためにAntスクリプトを使用しました。

13

はいできます。Documentationあなたがレガシーのhbm.xml使用と注釈アプローチを混在させることができ

注氏は述べています。 resource要素は、hbmファイルまたはEJB3 XMLデプロイメント記述子のいずれかです。

あなたはしかし、(注釈付きかのhbm.xmlているかどうか)クラスを複数回宣言することはできません。

は、しかし、いくつかのチェックポイントがあります。エンティティ階層に構成戦略(hbmと注釈)を混在させることはできません。

さらに詳しい情報はhereです。

0

私はこの投稿は素晴らしいと思いますが、実際のコード例ではそれが良いでしょう。私はManuPK refを試してきました。
私の実際のrefはここにある: http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/ch01.html#setup-configuration

//typical way to use cfg.xml 
Configuration cfg = new Configuration(); 
SessionFactory f = cfg.configure("hibernate.cfg.xml").buildSessionFactory(); 
Session s = f.openSession(); 
s.persist(new EntityObj()); 

//to use both annotation & cfg.xml mappings, use AnnotationConfiguration instead of Configuration 
AnnotationConfiguration cfg = new AnnotationConfiguration(); 
SessionFactory f = cfg.configure("hibernate.cfg.xml").buildSessionFactory(); 
Session s = f.openSession(); 
s.persist(new EntityObj()); 

AnnotationConfigurationは= "your_entity.hbm.xml"/>と<マッピングクラス= "私の両方<マッピングリソースを解析するためにいつものようにcfg.xmlを読みます。エンティティ.objclass "/ >

免責事項:古いHibernate ver 3.2.1を使用してみましたが、正常に動作しています。

関連する問題