使用JPA时的Project JAR文件结构

时间:2010-08-17 22:32:29

标签: java jpa

我不确定使用JAR文件共享多个项目的JPA对象的最合适方法。即如果您有多个项目都具有EmployeeContactAddress对象,并且您希望将它们放在JAR文件中,那么这是如何工作的。即

Employee.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,因为每个项目都将使用dfiferent数据库或模式。如果只在项目src / META-INF / persistence.xml中指定了JDBC连接属性,那么Employee.jar类会选择这些设置吗?

1 个答案:

答案 0 :(得分:2)

  

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

当然,如果您使用不同的persistence.xml文件来定义每个不同的持久性单元,那么可以使用多个.jar文件。您的持久性提供程序应该能够确定哪个类属于哪个持久性单元,并为每个类加载适当的配置文件。

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

但是一般的想法保持不变,包含持久化实体的每个.jar文件都应该使用persistence.xml目录下的classes/META-INF文件将该组实体关联为持久性单元。 / p>

此致