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

时间:2010-10-08 01:55:27

标签: hibernate jpa hbm2ddl persistence-unit

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

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

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

1 个答案:

答案 0 :(得分:3)

  

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

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

  

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

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

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

我的建议:

  • 设置日志记录以查看正在发生的事情完全
  • 如果您正在共享相同的实体,可能在客户端和服务器上没有update(尽管如果一个接一个地完成这不应该是一个问题)。
  • 最终,don't use update at all on production database