我正在尝试学习JPA,我想创建一个简单的Java命令行应用程序,它将使用JPA来查询和更新数据库表。我绘制了执行此操作所需的简单代码。但我不知道如何配置目录结构,在哪里放置persistence.xml文件,打包等等。这只是一个快速而肮脏的学习练习,所以我希望尽可能简单。有人可以拼出这些步骤吗?
我正在使用Weblogic 10.3。
答案 0 :(得分:1)
persistence.xml位于META-INF
目录中,该目录与持久性类处于同一级别。 Here's an example一些有效且无效的配置。在我编写的非Java EE应用程序中,我使用WEB-INF/classes/META-INF/
中的persistence.xml构建了JAR,因为我的JPA类位于WEB-INF/classes/
中。
答案 1 :(得分:1)
不确定WebLogic与Java命令行应用程序有什么关系:)
无论如何,所有您要查找的详细信息位于Persistence Units的The Java EE 5 Tutorial部分,我在下面引用:
持久性单位
持久性单元定义一组 由...管理的所有实体类
EntityManager
个实例 应用。这套实体 classes表示包含的数据 在单个数据存储中。持久性单位由。定义
persistence.xml
配置文件。 JAR文件或目录META-INF
目录包含persistence.xml
称为根 持久性单位。的范围 持久性单位由 持久性单位的根。每个持久性单元必须是 使用唯一的名称标识 持久性单位的范围。
持久单位可以打包为 WAR或EJB JAR文件的一部分,或者可以 打包成可以的JAR文件 然后被包含在WAR或EAR中 文件。
如果将持久单元打包为 EJB JAR文件中的一组类,
persistence.xml
应放入。{1}} EJB JAR的META-INF
目录。如果将持久性单元打包为 WAR文件中的一组类, persistence.xml应该位于 WAR文件
WEB-INF/classes/META-INF
目录。如果打包持久性单元 将包含在a中的JAR文件 WAR或EAR文件,JAR文件应该 位于:
- 在WAR的
WEB-INF/lib
目录中。- 在EAR文件的顶层。
- 在EAR文件的库目录中。
persistence.xml
档案
persistence.xml
定义了一个或多个 持久性单位。以下是 示例persistence.xml
文件。<persistence> <persistence-unit name="OrderManagement"> <description>This unit manages orders and customers. It does not rely on any vendor-specific features and can therefore be deployed to any persistence provider. </description> <jta-data-source>jdbc/MyOrderDB</jta-data-source> <jar-file>MyOrderApp.jar</jar-file> <class>com.widgets.Order</class> <class>com.widgets.Customer</class> </persistence-unit> </persistence>
此文件定义了持久性单元 名为
OrderManagement
,使用 支持JTA的数据源jdbc/MyOrderDB
。jar-file
和。{class
个元素指定托管 持久化类:实体类, 可嵌入的类,并映射 超。jar-file
元素 指定可见的JAR文件 到打包的持久性单元 包含托管持久性类, 而class元素显式 名称管理持久性类。
jta-data-source
(适用于JTA感知 数据来源)和non-jta-data-source
(非JTA感知 数据源)元素指定 数据源的全局JNDI名称 被容器使用。