2012-05-07 5 views
1

私は永続性のためにJPAを使用するスタンドアロンのJavaアプリケーションを持っています。 今、私はMETA-INF.Myアプリケーションのpersistence.xmlを開発中です。 私の質問は、開発から次の環境に移行する場合、QAと言うことです。 persistence.xmlを変更してjarを再構築する必要があります。これは正しいことですか? そうでない場合、接続プロパティを別のファイルに移動すると、このファイルはどこに配置されますか?環境固有の永続性xmlをJavaスタンドアロンアプリケーション

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> 
    <persistence-unit name="pu1" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <class>ClassA</class> 
     <class>ClassB</class> 
     <class>ClassC</class> 
     <class>ClassD</class> 


     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect" /> 
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver" /> 
      <property name="hibernate.show_sql" value="true" /> 
      <property name="hibernate.connection.username" value="username" /> 
      <property name="hibernate.connection.password" value="password" /> 
      <property name="hibernate.connection.url" 
       value="url" /> 
      <property name="hibernate.max_fetch_depth" value="3" /> 
      <property name="hibernate.archive.autodetection" value="class" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

ありがとうございます!

答えて

3

これは良い質問です。通常、アプリケーションを起動するときには、これらの環境設定をすべて外部ファイル、たとえばapplication.propertiesに入れ、アプリケーションを起動するときにその場所をJVMに渡します(-Dconfig.location=/conf/

次に、外部化されたプロパティをEntityManagerFactoryに追加しますあなたはpersistence.xmlでそれを行うことはできません。あなたはそこにあるものだけをハードコードすることができます。しかし、ベンダのプロパティを渡すことで、エンティティマネージャファクトリを作成するときに行うことができます。

たとえば、Springのようなフレームワークを使用する場合、SpringはエンティティマネージャのファクトリBeanを提供するため、これは簡単です。それ以外の場合は、自分で処理する必要があります。

+0

返信いただきありがとうございます。私は実際にSpringを使用しています。あなたが提案した変更を行い、動作すればこのスレッドを更新しようとします。もう一度ありがとう ! – user1260109

+0

<プロパティ名= "jpaProperties"> .. - これはカスタムプロパティを設定する場所です – Bozho

+0

ありがとうございました! – user1260109

関連する問題