5

我们可以有多个 JPA 持久性单元指向同一个数据库,在不同的 Java 项目中并同时部署在服务器上吗?我的意思是同一时间,不是在同一秒部署,而是一起部署。我正在使用 hsqldb 数据库。

我的项目有一个客户端-服务器模型。我有一个统一的数据库表,服务器在其中填充数据,然后客户端在不同的项目中访问该数据。我可以通过服务器成功填充数据库。但是当我部署客户端项目时,数据库中的所有数据都会被删除。

我正在使用<property name="hibernate.hbm2ddl.auto" value="update" />两个持久性单元。

4

1 回答 1

3

我们可以有多个 JPA 持久性单元指向同一个数据库,在不同的 Java 项目中并同时部署在服务器上吗?

只要您在两个项目中都没有不兼容的映射,这应该可以工作。但是,您将无法使用二级缓存。

但是当我部署客户端项目时,数据库中的所有数据都会被删除。(...)

这并不是我真正期望hbm2ddl.auto设置为的行为,update但我不知道在“类集群”环境中使用时该行为是否定义明确(多个 JVM 同时执行更新)。

一旦服务器部分完成初始化,部署客户端会发生什么?

我的建议:

  • 设置日志以查看到底发生了什么
  • 如果您共享相同的实体,也许不要update在客户端和服务器上(尽管如果一个接一个地完成这应该不是问题)。
  • 最终,不要update在生产数据库上使用。
于 2010-10-08T03:41:20.213 回答