私はHibernateとSpring Dataで春のブートプロジェクトを持っています。複数のプロファイルがあるので、プロジェクトをテストプロファイル、実行プロファイルなどで実行できます。すべてのプロファイルで異なるHibernateプロパティが必要です。 私はむしろ.propertyファイルでJavaクラスよりも保持プロパティを定義したいとします。 application.propertiesには、プロファイルをapplication- {profile} .propertiesとして指定する機能があります。残念ながら、これはhibernate.propertiesの場合ではありません。またはそれは? .propertiesファイルを使用してプロファイルごとに異なる休止状態のプロパティを注入する方法はありますか?プロファイルごとに異なる休止状態のプロパティ
答えて
文字列があります。それはpersistenceXmlLocation
と呼ばれ、Bean
を作成し、アクティブなプロファイルに基づいて異なる値を持つことができます。例えば:あなたはおそらく、あなたのConfiguration
クラスにEnvironment
を配線やベースでこれを達成でき
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile("test")
public class TestDatabaseConfig {
@Bean(name = "persistenceXmlLocation")
public String persistenceXmlLocation() {
return "classpath:META-INF/test-persistence.xml";
}
}
:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Configuration
@Profile("dev")
public class DefaultDatabaseConfiguration {
@Bean(name = "persistenceXmlLocation")
public String persistenceXmlLocation() {
return "classpath:META-INF/persistence.xml";
}
}
は、その後、あなたの異なるプロファイル、この場合test
のために、あなたはこれを持っていると思いますアクティブなプロファイルが異なるpersistence.xmlの場所を返します。
ですから、フィルタ下のsrc /メインフォルダを追加し、プロファイルごとに、すべての設定ファイルを置くことができ
をフィルタリング
Mavenのressourceを使用して、最も簡単な方法がありますそのフォルダの中にex:(application-test.properties、application-run.properties ...)、このコードをあなたのポームに追加してください:
<build> <!--enter code here --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <filters> <filter>src/main/filters/application-${env}.properties</filter> </filters> </build>
そして、あなたは、アプリテストファイルを選択したい場合ので、あなたは、たとえば-Denv =テストを追加することにより、プロファイルに応じ、あなたの設定ファイルを取得することができます(
mvn clean package -Denv=test
)
あなたは春のブートを使用している場合(Iあなたはspring-bootタグで質問にタグを付けるとyesと仮定します)、application.propertiesまたはapplication- {profile} .propertiesによって既にSpringブートによってロードされている休止状態を設定できます。アカウントの3つのレベルがサポートされていることを考慮に入れてください:
JPAプロバイダの一般的なプロパティ。例:いくつかの直接のHibernateプロパティ
真
spring.jpa.show-SQL =。例:= org.hibernate.cfg.ImprovedNamingStrategy spring.jpa.hibernate.ddl-自動
spring.jpa.hibernate.naming-戦略= JPAプロバイダの
その他のプロパティを検証します。あなたの場合はhibernateと同じプロパティがあり、プロパティ名にはspring.jpa.propertiesを追加するだけです。例:
spring.jpa.properties.hibernate.format_sql =真 spring.jpa.properties.hibernate.generate_statistics = falseを
はJpaPropertiesだけでなく、春のブートリファレンスドキュメントを見てみましょう最初の2つのレベルでサポートされているプロパティを確認します。
- 1. 休止状態で休止状態
- 2. と休止状態
- 3. 休止状態:
- 4. (休止状態)
- 5. 休止状態
- 6. 休止状態:
- 7. 休止状態:休止状態の接続を変更する
- 8. 休止状態のセッションが休止状態でヌルである
- 9. Oracleストアドプロシージャと休止状態
- 10. Struts1春と休止状態
- 11. 休止状態とデータベース・セッション
- 12. は休止状態
- 13. データベース+休止状態
- 14. ロンボク(休止状態)
- 15. 休止状態:session.load
- 16. 休止状態:エラーサブクエリ
- 17. 休止状態 - リンクエンティティ
- 18. 休止状態4
- 19. が休止状態
- 20. は休止状態
- 21. 休止状態:クエリメタデータ
- 22. 休止状態 - 別
- 23. が休止状態
- 24. 休止状態:私は休止状態を勉強
- 25. マッピングバイト[]休止状態にあるとチャンク
- 26. 休止状態でのプロパティ/コレクションのロードを無効にする
- 27. 休止状態の削除
- 28. 休止状態の質問
- 29. 休止状態のロールバック
- 30. 休止状態のSpringユーザートランザクション
提案したソリューションのいずれかを試しましたか選択しましたか? –