1

オブジェクトを定義してから、hibernate を使用して、これから ddl を生成したいと思います。しかし、休止状態での唯一の実際のワークフローは、データベース スキーマを生成し、それをリバース エンジニアリングすることのようです。意味のないことをしたいですか?

4

2 に答える 2

1

はい、プロパティがありますhibernate.hbm2ddl.autoドキュメントには次のように記載されています。

SessionFactory の作成時にスキーマ DDL を自動的に検証またはデータベースにエクスポートします。create-drop を使用すると、SessionFactory が明示的に閉じられると、データベース スキーマが削除されます。

例: 検証 | アップデート | 作成 | 作成ドロップ

の設定方法に応じて、このプロパティを定義する方法は複数ありますSessionFactory。休止状態の方法は、単純に追加することです:

<property name="hibernate.hbm2ddl.auto">update</property>
于 2010-09-09T06:40:37.360 に答える
1

しかし、休止状態での唯一の実際のワークフローは、データベース スキーマを生成し、それをリバース エンジニアリングすることのようです。

いいえ、絶対に違います。歴史的に、Hibernate はいくつかのアプローチをサポートしています。

  • トップダウン:オブジェクト モデルから開始し、XML ファイルまたは注釈を使用してマッピング メタデータを作成し、Hibernate のhbm2ddlツールを使用してスキーマを生成します。

  • ボトムアップ:hbm2hbmxml既存のデータベースから開始し、および を使用して、データベース スキーマからマッピングと Java クラス (または単にアノテーションを付けた Java クラス) を生成しますhbm2java

  • 中間:hbm2ddl Hibernate XML マッピングの記述を開始し、それぞれ およびを使用して DDL および Java クラスを生成しhbm2javaます。

  • 中間で会う:既存の Java モデルと既存のデータベースがあります。ここでは Hibernate ツールはあまり役に立ちません。手動でマッピングを記述し、データベースまたは Java コードのリファクタリングを行うか、何らかのブリッジを使用する必要があります。これは最悪の状況です。

このように、Hibernate はいくつかのワークフローをサポートし、それらのためのツールを提供します。そして、あなたの場合、 (それを実装するクラスの名前である とhbm2ddlも呼ばれる) というツールを探しています。SchemaExportいくつかの使用方法があります。

  • プログラムで実行できSchemaExportます。
  • SessionFactoryプロパティhibernate.hbm2ddl.autoを適切な値に設定することで、作成時にスキーマの自動エクスポートを有効にできます。
  • <hbm2ddl>Ant タスクを使用できます

参考文献

于 2010-09-09T08:07:59.423 に答える