Java JPA,如何在没有销毁创建的情况下更新表?
Posted
技术标签:
【中文标题】Java JPA,如何在没有销毁创建的情况下更新表?【英文标题】:Java JPA, How to do Updates to a table without destroy-create? 【发布时间】:2010-10-21 20:50:46 【问题描述】:我正在学习一些 JPA 来教一些 java 朋友,我想知道,你如何处理在 JPA 中创建数据库之后的更新?假设我有一个生产环境,其中有我不能丢失的数据。
出现了一些变化,如何将其应用到我的生产环境中? JPA 是否有办法只更新数据库上的更改?
或者我需要手动创建一个 SQL 脚本来更新我的数据库吗?
还有其他选择吗?
[]的 罗德里戈·德拉夸
【问题讨论】:
【参考方案1】:发生了一些变化,我如何将其应用到我的生产环境中? JPA 是否有办法只更新数据库上的更改?
没有标准化。换句话说,这将是提供商特定的功能。例如,Hibernate 有一个 SchemaUpdate 工具,可以(理论上)安全地更新数据库模式。在实践中,many don't use that on a production database(包括我)。
或者我需要手动创建一个 SQL 脚本来更新我的数据库吗?
使用迁移脚本(也可能是 database migration tool)是 IMO 处理此问题的安全方法,并且是进行实际项目的方法。
同样,某些迁移工具可能会为给定的 JPA 提供程序提供支持。例如,liquibase 确实提供了Hibernate support 和can diff your Entities against a database to generate a change script。
【讨论】:
以上是关于Java JPA,如何在没有销毁创建的情况下更新表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 ComponentFactory 的情况下销毁 Angular 2 组件?