Hibernateの自動DDL機能を使用して、テーブルと列を作成します。
ただし、エンティティ内の多くの列を削除することになりますが、それらの列はデータベースに残ります。
これらのマップされていない列とテーブルを識別して、手動で削除できるスクリプトはありますか?
今、私は手動でそれをしますが、データベースが大きくなるにつれて問題になっています。
回答:
回答№1は1推奨事項は次のとおりです。
hibernate.hbm2ddl.autoプロパティは、本番環境ではなく開発環境でのみ使用する必要があります
hibernate.hbm2ddl.auto = create-dropの場合、hibernateは展開のたびに新しいデータベースを削除して作成します。 つまり、データベースの状態とその一貫性を追跡できます。
hibernate.hbm2ddl.auto = updateの場合、hibernateはモデル/エンティティクラスで行われた変更のみでデータベースを更新します。 しかし、本番環境/データベースでは信頼すべきではありません。
hibernate.hbm2ddl.autoは、本番環境のデフォルトに設定する必要があります。これにより、本番環境のデータベースの変更がhibernateから反映されないようにする必要があります。
回答№2の場合は0
自動化された方法はないのではないかと心配しています。
または、プロジェクトをビルドおよびロードする前にテーブル全体をドロップし、Hibernateで定義された列名でテーブルを再作成することもできます。