我不确定处理使用 JAR 文件共享到多个项目的 JPA 对象的最合适方法是什么。即,如果您有多个项目,它们都有一个 Employee
和 Contact
以及 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/