私はEclipseで開発されたJava/Spring/HibernateベースのWebアプリケーションに取り組んでいます。Hibernateエンティティを外部化する方法は?
このWebアプリケーションは実際には、2つのHibernateエンティティクラスとそれぞれのHibernateリポジトリクラスを複製する2つの異なるプロジェクトです。明らかに、重複したコードを取り出し、それを外部のJARファイルなどに移動するとよいでしょう。
Hibernateのドキュメントから、persistence.xml
ファイルを含む新しいJAVAプロジェクトにエンティティクラスを配置するはずです。また、このプロジェクトをJARにエクスポートし、それをメインプロジェクトのクラスパスに含めることもできます。さらに、私は自分のメインプロジェクトのhibernate.cfg.xml
からこのJARを参照することになっていることを知っています。
私が今作業しているプロジェクトでは、それほど単純ではないようです。ここで
質問は以下のとおりです。共有コードを保持している私の外部プロジェクトで
、私はそれがあまりにも休止状態リポジトリクラスにそれを含めることができますか?もしそれが本当に必要であれば、これはどのようにして
persistence.xml
に記されていますか?私の外部JARで、
persistence.xml
の最小の可能性はありますか?例えば、メインプロジェクトはすでにハイバネートの方言を設定しているので、この外部JARのpersistence.xml
から除外することができますか?Hibernateのドキュメントから、
hibernate.cfg.xml
の<jar-file>
タグを使用して外部JARファイルを参照できることがわかりました。では、私のプロジェクトにhibernate.cfg.xml
がないとどうなりますか? Springのコンフィグレーションxmlは、org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
にannotatedClasses
というプロパティを与えています。私はAnnotationSessionFactoryBean
で外部JARファイルを参照する例を見つけるのは大したことではありません。
私はこのサイトを検索しようとしましたが、まだ私を助けてくれるほど類似したものは見つかりませんでした。これが重複した投稿、または愚かな明白な質問なのかどうかお詫び申し上げます。事前:)で
おかげ
EDIT:
OK、それは私が最終的に、私は私のクラスパスに"MY_TEST.jar"
、さらに"MY_TEST.jar"
一つは注釈を付けた想定を含めました想定される知っておくべきことのように見えるので、 Hibernateクラス:src.shared.myEntity.java
以下のSpring構成の抜粋でこのエンティティクラスを参照する方法はありますか?
<bean id="my.postgres.sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource"
ref="my.postgres.dataSource" />
<property name="annotatedClasses">
<list>
<value>src.app.EntityA</value>
<value>src.app.EntityB</value>
</list>
</property>
.........
</bean>
お返事ありがとうございます。申し訳ありませんが、私はリポジトリのことを忘れました。 クラスパスに外部jarがありますが、Springの設定でAnnotationSessionFactoryBeanプロパティを使用して参照する際に問題があります。 Hibernateのドキュメントでは、これがhibernate.cfg.xmlファイルでどのように行われたかを明確に示していますが、元のプロジェクトアーキテクトはこれを含めず、Springの設定を通してすべてを構成することにしました。すべてがコンパイルされていますが、Springは外部のEntityクラスを見つけることができません – Langecrew
次に、問題があるSpringの設定を表示し、どの例外が発生するか(スタックトレース)を教えてください。しかし、春は瓶も気にしない。あるクラスがクラスパスにある場合、それを見つけるでしょう。 –
私の元の投稿に編集で投稿 – Langecrew