1


0

Java JPA、destroy-createを使用せずにテーブルを更新する方法

Javaの友達に教えるためにJPAを学んでいましたが、JPAでdbを作成した後に行われる更新をどのように処理しますか? 私が失うことのできないデータがある本番環境があるとしましょう。

いくつかの変更がありますが、それを本番環境にどのように適用しますか? JPAがデータベースの変更のみを更新する方法はありますか?

または、データベースを更新するにはSQLスクリプトを手動で作成する必要がありますか?

他に選択肢はありますか?

[]'s Rodrigo Dellacqua

1 Answer


0


_ いくつかの変更がありますが、それを本番環境にどのように適用しますか? JPAがデータベースの変更のみを更新する方法はありますか? _

標準化されたものはありません。 言い換えれば、それはプロバイダー固有の機能です。 たとえば、Hibernateには、(理論的には)データベーススキーマを安全に更新できるSchemaUpdateツールがあります。 実際には、https://stackoverflow.com/questions/221379/hibernate-hbm2ddl-autoupdate-in-production [本番データベースでは使用しないでください](私を含む)。

_ または、データベースを更新するにはSQLスクリプトを手動で作成する必要がありますか? _

移行スクリプト(および、おそらくhttps://stackoverflow.com/questions/131020/migrations-for-java [データベース移行ツール])を使用することは、これを処理する安全な方法であり、実際のプロジェクトに進む方法です。

また、一部の移行ツールは、特定のJPAプロバイダーをサポートする場合があります。 たとえば、http://www.liquibase.org/ [liquibase]はhttp://www.liquibase.org/manual/hibernate[Hibernate support]およびhttps://stackoverflow.com/questions/776787/hibernate-を提供しますusing-jpa-annotated-entities-and-liquibase [エンティティをデータベースと比較して変更スクリプトを生成できます]。