私は現在更新に取り組んでいるよく使われるプロジェクトを持っています。このプロジェクトをインストールできる場所はいくつかありますが、将来、どのバージョンがどこでどのバージョンに更新されるかは定かではありません。しかし、今のところそれらはすべて同じです。
私の問題は、休止状態のエンティティクラスに多くの変更が加えられる可能性があるという事実に起因します。また、面倒なことなく、データベースコンテンツを失うことなく、新しいバージョンに簡単に更新できる必要があります。WARを置き換えて起動するだけで、自動的に移行されます。
私の知る限り、Hibernateはhibernate.hbm2ddl.auto = createでない限りテーブルを変更しませんが、実際にはすべてのデータを破棄しますか?
そのため、Springコンテキストが完全に読み込まれると、Beanが実行され、versionXからversionY(以前にデータベースに保存されていたバージョン)へのすべての変更を経て、データベースが現在のバージョンに移行され、手動で変更されます。テーブル。
いくつかの列を追加するためにハードコードされたALTERTABLEをいくつか実行するのはそれほど面倒ではありませんが、完全な新しいテーブルを追加することになると、それらすべてを記述しなければならないのはばかげています...
だから私の質問はこれです:
エンティティクラスと方言をどこかのHibernateコードに送信し、テーブルを作成するための有効なSQLクエリを取得する方法はありますか?
さらに良いことに、方言で安全な、テーブルに列を追加するためのSQL文字列をどうにかして作成しますか?
これがばかげた質問ではないことを願っています。Hibernateに関しては、明らかなことを見逃していません...