更新JPA实体模型

时间:2015-06-19 17:42:40

标签: java google-app-engine jpa

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

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

一般情况下,是否有最佳做法是在jpa模型投入生产后进行更新,以避免对持久存在的旧对象产生约束冲突?

1 个答案:

答案 0 :(得分:0)

不幸的是,像这样更新模型并不是一件轻而易举的事。您必须更新所有现有实体或按需创建"更新"这样的实体不会让你的新条件失败。

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