以前は、私の Java Web プロジェクトは Eclipse の通常の構造を使用しており、コンテナー (Tomcat の場合) の開始時に、Hibernate はスキームを正しく生成していました。
現在、Maven インフラストラクチャを使用しています。必要なファイルを再配置し、すべて適切に構成しました (すべてが正常に機能しているためだと思います: Spring が開始され、Hibernate がデータベースに接続しています - データベースが以前に作成され、フェッチするデータがある場合)。すべての CRUD 操作をテストしましたが、動作しています。問題は、Hibernate が Eclipse の通常のインフラストラクチャ上で行ったように、スキーム (DDL) の生成を拒否することです。
追加情報:
Spring applicationContext.xml が起動しているため、私の persistence.xml は (いつものように) ほとんど空です。ファイルは変更していません。以前と同じように続行します。
<!-- Location: src/main/resources/META-INF/persistence.xml --> <persistence> <persistence-unit name="jpa-persistence-unit" transaction-type="RESOURCE_LOCAL"/> </persistence>
Spring 構成の一部はここにあります (applicationContext.xml):
<!-- Location: src/main/webapp/WEB-INF/applicationContext.xml --> <!-- ... --> <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="database" value="[DATABASE-NAME]" /> <property name="showSql" value="true" /> <property name="generateDdl" value="true" /> <!-- THIS CONFIGURATION WORKED PREVIOUSLY, NOW WITH MAVEN, IT'S IGNORED --> <property name="databasePlatform" value="[DIALECT]" /> </bean> <!-- ... -->
以前に発生したデフォルトの動作が必要なだけなので、Maven Hibernate プラグインは使用していません。
- Maven はこの「generateDdl」プロパティを無効にしました!? どうして!?私は何をすべきか!?解決策が見つかりません。