0

我正在尝试学习 JPA,我想创建一个简单的 Java 命令行应用程序,它将使用 JPA 来查询和更新数据库表。我绘制了执行此操作所需的简单代码。但是不知道如何配置目录结构,persistence.xml文件放在哪里,打包等等。这只是一个快速而肮脏的学习练习,所以我想让它尽可能简单。有人可以拼出执行此操作的步骤吗?

我正在使用 Weblogic 10.3。

4

2 回答 2

1

不确定 WebLogic 与 Java 命令行应用程序有什么关系:)

无论如何,您正在寻找的所有细节都可以在我在下面引用的 Java EE 5 教程的持久性单元部分中找到:

持久性单位

持久性单元定义了一组由应用程序中的实例管理的所有实体类 EntityManager。这组实体类表示包含在单个数据存储中的数据。

持久性单元由 persistence.xml配置文件定义。其 META-INF目录包含 的 JAR 文件或目录persistence.xml称为持久单元的根。持久化单元的范围由持久化单元的根决定。

每个持久性单元必须用一个对持久性单元的范围唯一的名称来标识。

持久单元可以打包为 WAR 或 EJB JAR 文件的一部分,也可以打包为 JAR 文件,然后可以将其包含在 WAR 或 EAR 文件中。

如果您将持久单元打包为 EJB JAR 文件中的一组类, persistence.xml则应将其放在 EJB JAR 的META-INF目录中。

如果将持久性单元打包为 WAR 文件中的一组类,persistence.xml 应该位于 WAR 文件的 WEB-INF/classes/META-INF目录中。

如果将持久性单元打包到将包含在 WAR 或 EAR 文件中的 JAR 文件中,则 JAR 文件应位于:

  • WEB-INF/libWAR 的目录中。
  • 在 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-fileclassjar-file元素指定对包含托管持久性类的打包持久性单元可见的 JAR 文件,而 class 元素显式命名托管持久性类。

jta-data-source对于 JTA 感知数据源)和 non-jta-data-source(非 JTA 感知数据源)元素指定容器要使用的数据源的全局 JNDI 名称。

于 2009-12-12T22:03:23.153 回答
1

persistence.xml 位于META-INF与您的持久性类处于同一级别的目录中。 这是一些有效和无效配置的示例。在我编写的非 Java EE 应用程序中,我使用 persistence.xml 构建 JAR WEB-INF/classes/META-INF/,因为我的 JPA 类位于WEB-INF/classes/.

于 2009-12-12T02:54:13.803 回答