2011-01-26 12 views
2

この質問は前に投稿された2つのスレッドに基づいています。liquibaseとhibernateの注釈

Hibernate using JPA (annotated Entities) and liquibase

Liquibase diffChangeLog against a Hibernate mapping definition

私は注釈を休止状態に使用していた場合、私の混乱があり、私はまだ変更履歴にチェンジを記述する必要がありません。

また、多くの人が今では休止状態の注釈を使用しています。私は誰かが私に実際にそれを働かせるために必要なものの例を与えることができますことを願っています。インターネット上の良い例はありません。

+0

JPAアノテーションでLiquibaseを使用する方法の例を挙げてください。 –

答えて

4

liquibase hibernate diffのJPA/Annotationサポートは、過度にテストされておらず、すべてのケースと注釈をカバーしていないため、現在の状態では通常のワークフローの一部として信頼される準備ができていません。

言い換えれば、完全にテストされていても、手動でチェンジセットを書き込むことができます。 Hibernateサポートは、現在のデータベースとHibernateデータベース間の差分を行います。Hibernateは、現在のデータベースからHibernateデータベースに移動するための変更セットを期待して出力します。これはしばしば機能しますが、データベース差分ベースのプロセスには固有の問題があります(http://blog.liquibase.org/2007/06/the-problem-with-database-diffs.html参照)。個人的には、それらを実行する前にhibernate diffによって追加されたチェンジセットを調べて変更するのが最善であるため、自分で追加するのと同じくらい簡単です。こうすることで、changeLogをより読みやすくする高レベルの変更(introduLookupTableなど)を利用できます。

チェンジセットの生成がうまくいき、それがサポートされている理由は間違いなくありますが、まだ存在しておらず、liquibaseを使わずに休止状態で使うことができます。

+2

hi nathan、実用的な例が見つからないので、mavenを使用してどのように(ハイバネートアノテーションを使用してもしなくても)それが本当に素晴らしいだろうという例を教えてもらえますか?また、liquibaseがどのように動作しているかを明確に理解できるように、いくつかのzipの例を親切に追加することもできます。非常に基本的な愚かな例でさえ十分です。 – Ikthiander