java - 使用 JPA 时的项目 JAR 文件结构

标签 java jpa

我不确定处理使用 JAR 文件共享到多个项目的 JPA 对象的最合适方法是什么。即,如果您有多个项目,它们都有一个 EmployeeContact 以及 Address 对象,并且您想将它们放在一个 JAR 文件中,如何做这个工作。即

员工.jar

   jpa/EMF.class
   jpa/Employee.class
   jpa/Contact.class
   jpa/Address.class
   jpa/Organisation.class
   META-INF/persistence.xml

项目1

  src/jpa/EMF.java
  src/jpa/BlogEntry.java
  src/jpa/Comment.java
  src/META-INF/persistence.xml
  lib/Employee.jar

项目2

  src/jpa/EMF.java
  src/jpa/Stock.java
  src/jpa/Transaction.java
  src/META-INF/persistence.xml
  lib/Employee.jar

这是如何工作的,像上面那样有两个 persistence.xml 文件可以吗?即一个用于描述 Employee.jar 文件中的 JPA 类,另一个用于描述项目特定的 JPA 类?

此外,Employee.jar 文件不应指定 JDBC url,因为每个项目都将使用不同的数据库或模式。如果 JDBC 连接属性仅在项目 src/META-INF/persistence.xml 中指定,Employee.jar 类会选择这些设置吗?

最佳答案

How does this work, is it ok to have two persistence.xml files like above? ie One for describing the JPA classes in the Employee.jar file, and another one for the project specific JPA classes?

当然,如果您使用不同的 .jar 文件定义每个不同的持久性单元,则可以拥有多个 persistence.xml 文件。您的持久性提供者应该能够找出哪个类属于哪个持久性单元,并为每个类加载适当的配置文件。

当然,根据您使用的持久性提供程序以及您工作的环境,您可能会遇到更多麻烦,但这是另一个问题。

但总体思路保持不变,每个包含持久实体的 .jar 文件都应该使用 persistence.xml 文件将那组实体关联为持久单元classes/META-INF 目录。

问候,

关于java - 使用 JPA 时的项目 JAR 文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3507506/

相关文章:

java - 我什么时候应该设置类路径?

java - 如何获取hazelcast中跨节点分布式映射的内存成本

java - 具有关系的 EJB 实体 bean 的深度复制

java - JPA ManyToMany 使用分组和交叉连接将数据连接在一起

java - 使用 CName 从 Java 连接到加密的 ElastiCache Redis

java - hibernate.cfg.xml 在项目中的位置?

java - Android保存backstack fragment历史

java - 具有相同实体的 Fetchtype.LAZY

java - 使用 native 查询但保持数据库独立性

java - 扩展 hibernate 实体以添加非拥有关系,针对同一个表