どのように輸入初期データをデータベースHibernate?
-
21-08-2019 - |
質問
導入時に用いる利用Hibernateの容量をデータベースのスキーマを簡単にするため、展開。これは容易に達成可能なように構成すhibernate.hbm2ddl.オート物件です。
しかし、こでも必要なの挿入では、初期データをデータベースは、例えばrootユーザーです。があるので、私達はこのよhibernateの負荷テキストファイルとは何ですか?
思いがコンテンツを簡単にプログラムのコードなんかがある場合でもできるユーティリティをきっかけにして、自分達と同じ介します。
解決
私は「休止状態備品」で検索を行うことでこれを見つけました
Hibernateは、データベースを作成します。 エンティティマネージャファクトリは、あるとき、 作成された(実際にはHibernateのとき SessionFactoryのはによって作成されました エンティティマネージャファクトリ)。ファイルの場合 命名import.sqlはのルートに存在します クラスパス(「/import.sql」) HibernateはSQLを実行します ステートメントは、後にファイルから読み込みます データベーススキーマの作成。 ことを覚えておくことが重要です Hibernateは、スキーマを作成する前に それを空(すべてのテーブルを削除し、 制約、またはその他のデータベース 中に作成されようとしているオブジェクト スキーマを構築するプロセス)。
ソース:ます。http://www.velocityreviews。 COM /フォーラム/ t667849-休止-quotfixturesquot・オア・データベース・population.htmlする
それを試してみるとそれが動作するかどうか、私たちに知らせて!
他のヒント
クラスパスにimport.sqlを追加するには、偉大な、hbm2ddlチェックを動作します。唯一の追加の詳細は、各SQLコマンドがそうでなければ、それが実行に失敗し、独自のライン上になければならないということです。
このもhbm2ddl.auto
がcreate
またはcreate-drop
するように設定されている場合にのみ動作します。
休止状態プロパティの hibernate.hbm2ddlを追加します。あなたのHibernate設定でimport_files をに。 作成するhibernate.hbm2ddl.autoプロパティを変更します。 データを挿入するために、最初のSQLコード付き/ classesディレクトリにinitial_data.sql追加。 これは後のデータベーススキーマを作成、実行休止ます。
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.hbm2ddl.import_files">initial_data.sql</prop>
</props>
</property>
</bean>
あなたが休止状態の設定でプロパティを追加したくない場合は、/ classesディレクトリにファイルimport.sqlを作成することができ、プロパティhibernate.hbm2ddl.autoは、
の作成に等しい場合は、デフォルトでは、この使用を休止しますなぜ hbm2ddl.auto
や hbm2ddl.import_files
特性 悪
(誤用のツールとしてデータベース変更管理)
のように言った 他の, 使用し、 hibernate.hbm2ddl.auto
や hibernate.hbm2ddl.import_files
データベースの変更管理して 深刻な 欠点:
- の構造を変更できます。既存の値が上書きされたり、最悪のシナリオだけでなく受験英作文旅行者が外国を訪れて涅槃.なツールのような liquibase または scriptella, すな ETL 力です。
- このメソッドは何も行いません。両方の構造のデータを算が実行される前にトランザクションマネージャです。いて誤算書42 256.データベースは矛盾した状態です。
- Imvho、ゆったり透明性の制御:がscriptellaスクリプトliquibase変更の設定は、通常犯とともに変化は、ドメインモデル、変更のドメインモデルについては基本的には)hibernateすェジェク国際ユーストーナメント(ながはまったく違います。)
- のための統合システムおよび受け入れテストのすけ 想 この試験データベースの 絶対に、同じ状態 として生産データベースです。きのイラストを手動で幸運として楽しも国内の宿探しのお得な情報満載。;)).があった場合にはエラーだけの小さなスリップが発生するように十分な結果が非常にしてまいりますので、お気軽ない。
個人的に利用liquibaseのためのデータベース変更管理、開発した以下のワークフローを削減したら、メール:
- をchangelogコマンドラインから 前回のリリース構造
- 作戦の最新のデータベース
- 手動で diffの両方の変化をログには通常は変更しない膨大な場合においては、通常の欠点 liquibases diff コマンドです。
- を変更セット
でも複雑な変化を実現 customChange, ることを可能にするのである物質の時間の定義のrollbacks、テスト、ドキュメンテーションをイン些細な変化で物質が含まれております。基本的には:だ少ししてくれてありがとうございます作成したカスタマイズ変更セット4データベースの構成は以下の日)でご利用いただけます。に安心としていいのデータベースに一貫した。
時間障害物、その共有んどろ風mikiモデルを作ってみたもので非常に古い。
それを動作させるために適切なっしなければならない。
hbmddl
設定create
またはcreate-drop
- ファイルです。sqlではclasspath根;私の場合、投入するだけで、簡単にで
resources
フォルダが、私が使っているmaven. - 各sqlコマンド一行
- 各ファイルです。sqlい空の線初頭にファイル ==>非常に良いのではないかと思い理由をこないんだけど挿入することに空白行は、執行時点にサーバーからある構文エラー初めての文字です。
い役立っています。
あなたのimport.sqlが正しくフォーマットされていることを確認してください。テストへの1つのライナーインサート文で起動します。