のHy、私はJPA2(休止状態)を統合しようとしているwebアプリケーションを持っ+春+フライウェイFlyway Spring JPA2の統合 - スキーマの検証を可能にする?
私はこのように私のApplicationContextにフライウェイを追加しました:
<bean id="flyway" class="org.flywaydb.core.Flyway" init-method="migrate">
<property name="baselineOnMigrate" value="true" />
<property name="dataSource" ref="dataSource" />
</bean>
を理論的に、これは正常に動作してスキーマを更新私はdb/migrationの下に保存するスクリプトを使用します。ここまでは順調ですね。
私に残る1つの問題は、もし何かを変更した場合(EntityにStringフィールドを追加するなど)、Hibernate Schema-Validatorが次のようなものをスローするため、アプリケーションはこれを取得しません。by:org.hibernate.HibernateException:欠けている列:showCaseField in demo.testEntity。これは、 "hibernate.hbm2ddl.auto"を "validate"に設定しているために発生します。
これで、Hibernateがいくつかの(まれな)ケースで完全な有効なスキーマを認識できず、いつか私はこの機能を完全に無効にします。しかし今のところ、私は実際に余分な検証が好きで、それをオフにしたくない。
Hibernate-Schema-Validationを維持しながらSpringとFlywayを統合することは可能ですか? FlywayはDataSource-beanなどに依存している可能性があり、結局applicationContextを完全に初期化する必要があるため、Hibernateはスキーマの不一致のためにこれを防ぐ必要があるため、これは問題になると思います。
アイデア?