【问题标题】:Updating JPA Entity Model更新 JPA 实体模型
【发布时间】:2015-06-19 17:42:39
【问题描述】:

我有一个在使用 JPA 的 Google App Engine 上运行的应用程序。我想在某些时候,随着应用程序的发展,新的属性将被添加到 java 类中,需要更新 jpa 模型。一旦应用程序投入生产,通常如何处理此类更改?

例如,假设我向我的类 (bar) 添加了一个新字段 (foo),并且我说 foo 不可为空。在事务过程中,EntityManager 读入一个旧的 bar 对象(在添加 foo 之前),更新另一个字段,并尝试提交更改,然后发生异常。这是我要提防的。

一般来说,是否有在 jpa 模型投入生产后更新它的最佳实践,以避免与已持久化的旧对象发生约束冲突?

【问题讨论】:

  • 您的意思是 GAE 使用“Datastore”或 appengine-sql(即 mysql)?如果是前者,那么为什么要标记 Hibernate?
  • 我的错误,并不是要标记休眠,因为谷歌使用他们自己的 JPA 实现。是的,使用 JPA 将数据存储在数据存储中

标签: java google-app-engine jpa


【解决方案1】:

不幸的是,像这样更新模型在 gae 中并非易事。您必须更新所有现有实体或创建“按需更新”,以使这些实体不会不符合您的新条件。

例如,添加不可为空的字段会强制您事先更新实体,因为 JPA 不允许您事后这样做。

【讨论】:

    猜你喜欢
    • 2023-02-24
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多