/ / Hibernate MySQLがマップされていないテーブルと列を検索-java、mysql、hibernate

Hibernate MySQLはマップされていないテーブルとカラムを見つける - java、mysql、hibernate

Hibernateの自動DDL機能を使用して、テーブルと列を作成します。

ただし、エンティティ内の多くの列を削除することになりますが、それらの列はデータベースに残ります。

これらのマップされていない列とテーブルを識別して、手動で削除できるスクリプトはありますか?

今、私は手動でそれをしますが、データベースが大きくなるにつれて問題になっています。

回答:

回答№1は1

推奨事項は次のとおりです。

  1. hibernate.hbm2ddl.autoプロパティは、本番環境ではなく開発環境でのみ使用する必要があります

  2. hibernate.hbm2ddl.auto = create-dropの場合、hibernateは展開のたびに新しいデータベースを削除して作成します。 つまり、データベースの状態とその一貫性を追跡できます。

  3. hibernate.hbm2ddl.auto = updateの場合、hibernateはモデル/エンティティクラスで行われた変更のみでデータベースを更新します。 しかし、本番環境/データベースでは信頼すべきではありません。

  4. hibernate.hbm2ddl.autoは、本番環境のデフォルトに設定する必要があります。これにより、本番環境のデータベースの変更がhibernateから反映されないようにする必要があります。


回答№2の場合は0

自動化された方法はないのではないかと心配しています。

または、プロジェクトをビルドおよびロードする前にテーブル全体をドロップし、Hibernateで定義された列名でテーブルを再作成することもできます。