2013-08-06 6 views
30

私は休止状態hbm2ddl.auto設定プロパティとその可能性のある値で探していますか:Hibernateのhbm2ddl.auto、可能な値、および彼らが

  • validate
  • update
  • create
  • create-drop

これらの値は何をしていますか?

Hibernate Reference Documentationのみ会談簡潔についてcreate-dropが、他の値については何も言っていない:SessionFactoryが作成されたときに

hibernate.hbm2ddl.auto

がデータベースに自動的にスキーマDDLを検証したり、輸出。 create-dropでは、SessionFactoryが明示的に閉じられると、データベーススキーマは削除されます。

validate | update | |公式ドキュメントで

しかし、まだ何も:

create-dropは、私はこれらのスタックオーバーフローの質問で非常に便利な説明を見つけました。

+1

チェックアウトこの質問への回答:http://stackoverflow.com/questions/438146/hibernate-hbm2ddl-auto-possible-ここでは、この機能のための公式へのリンク、現在のドキュメントがあります値 - と - 彼らは何ですか - –

+0

実際には、私はこの非常に質問にリンクしました。私はHibernateのドキュメントの*公式の説明を探していました。 –

答えて

11

あなたが提供したリンクは、すでに公式文書です。だから今日は公式で包括的なものは何もない。

だから私はあなたの質問への答えは二つあると思います:

(案とのより良い)Hibernate issue trackerに拡張要求をファイルのいずれか、私は知っていますこれはあなたが夢見てきた完璧な答えではありませんが、これは実際にあなたが今日持っているすべてのものです。

しかし、良いニュースは、プロジェクトがオープンソースなので、あなたはそれを改善するために必要なものすべてを持っていることです:-)。

+1

暫定プロポーザルで問題を作成しました:https://hibernate.atlassian.net/browse/HHH-8789 –

50

hbm2ddl.auto財産のために可能なオプションのリストは次のとおりです。

  • 検証:データベースのスキーマに変更を加えない、スキーマが一致することを検証し、あなたはおそらく生産のためにこれをしたいです。
  • 更新
  • を持続している実体を反映するために、スキーマを更新を作成します。以前のデータを破壊し、あなたのエンティティのために必要なスキーマを作成します。
  • create-drop:上記のの作成のようにスキーマを作成しますが、セッションの最後にスキーマを削除してください。初期の開発やテストではこれは素晴らしいことです。
+0

回答を洗い流そうとしましたが、私の変更をレビューして、あなたの元の意図を反映し、正確であることを確認してください。 – ArtB

+1

** update **は存在しないテーブルを作成しません。** create **は常に既存のデータを切り捨てます。 **テーブルがまだ存在しない場合にのみテーブルを作成するよう**に自動で通知する方法はありません** – humanityANDpeace

関連する問題