2012-03-28 7 views
6

私はすでにHibernateでマップしたPersonというテーブルを持っています。私はアドレスと呼ばれる新しい列を追加する必要がありますどのように休止状態でそれを行うには?事前に既存のデータを失うことなく、hibernateを使用してマッピングされたテーブルにカラムを追加してください

おかげで..

+0

[hbm2ddl](http://www.jroller.com/eyallupu/entry/hibernate_s_hbm2ddl_tool)を使用する必要があります。 –

答えて

0

多分あなたは/更新データベーススキーマを作成するためにHibernateを使用するように強制されていません。

<property name="hibernate.hbm2ddl.auto" value="create-drop" /> 

だけで、「検証」のマッピングに変更を行い、個別のALTER TABLE文を実行するための値を変更します。私はあなたの設定でこのような何かを持っていると仮定します。

他のオプションは、テーブル構造を更新する方法をHibernateに理解させるために "更新"を使うことです。私はそれをあなたの手に保持し、DDL SQLを手動で実行することをお勧めします。

6

現在のテーブルがHibernateによって生成されている場合は、addressカラムのjavaエンティティクラスにaddressプロパティを追加するだけで済みます。その後、hibernate.hbm2ddl.autoプロパティをupdateに設定し、次回にSessionFactoryをビルドするときに、このカラムを自動的に作成します。 hibernate.hbm2ddl.autoupdateの場合、Hibernateはデータベース内のデータストアを変更しません。

また、SQLを手動で発行してテーブル構造を変更し、アドレス列のjavaエンティティクラスにaddressプロパティを追加することもできます。

関連する問題