多个JPA持久性单元指向同一个数据库?

Vas*_*ogi 5 hibernate jpa hbm2ddl persistence-unit

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

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

<property name="hibernate.hbm2ddl.auto" value="update" />用于两个持久性单元.

Pas*_*ent 3

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

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

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

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

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

我的建议:

  • 设置日志记录以查看到底发生了什么
  • 如果您共享相同的实体,也许不要update在客户端和服务器上共享(尽管如果相继完成,这应该不是问题)。
  • 最终,根本不要在生产数据库上使用update