当前位置: 首页 > 面试题库 >

DDL生成和常规persistence.xml设置(OpenJPA)

诸正谊
2023-03-14
问题内容

摘要

我正在尝试运行Java Web应用程序JPA
2.0示例。该示例应用程序被编写为Glassfish使用EclipseLinkJPA提供程序在中运行。我想将其转换到运行TomEEOpenJPA作为JPA提供者,但我不能任何详细的教程起床与运行OpenJPA

问题

我在转换persistence.xmlOpenJPA而不是时遇到了麻烦EclipseLink。更具体地说,给定的persistence.xml未指定:

  • Entity类。这些必要吗?
  • 所需的JPA提供程序。容器会默认为某种东西吗?
  • JDBC驱动程序。如何指定“内存中”数据库(仅用于初始测试)?

也:

  • 如何在OpenJPA中表达DDL生成属性?我找不到《OpenJPA用户指南》。

细节

以下是EclipseLink persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="order" transaction-type="JTA">
        <jta-data-source>jdbc/__default</jta-data-source>
        <properties>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
            <property name="eclipselink.ddl-generation.output-mode"
                value="both" />
        </properties>
    </persistence-unit>
</persistence>

我有以下Entity课程:

  • order.entity.LineItem
  • order.entity.LineItemKey
  • order.entity.Order
  • order.entity.Part
  • order.entity.PartKey
  • order.entity.Vendor
  • order.entity.VendorPart

  • 有谁知道OpenJPA的等效persistence.xml是什么样子?
  • 另外,如果有人可以指点我看一下涵盖这些问题的OpenJPA教程,那同样会很好

问题答案:

如果添加openjpa.jdbc.SynchronizeMappings如下所示的属性,OpenJPA将自动创建所有表,所有主键和所有外键以完全匹配对象

<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>

另外,您可以在TomEE中使用EclipseLink,只需将EclipseLink jar添加到 <CATALINA_HOME>/lib/

有关通用PersistenceProvider属性,请参见此处



 类似资料:
  • 要成功地创建一个新的连接到本机或远程服务器 - 不管通过 SSL、SSH 或 HTTP,都要在常规选项卡中设置连接属性。如果你的互联网服务供应商(ISP)不提供直接访问其服务器,安全通道协定 (SSH) 或 HTTP 是另一种解决办法。在 连接名 文本框输入一个恰当地描述你的连接名。 当你登录 Navicat Cloud 功能后,你可以从 添加到 下拉列表选择保存连接在 我的连接 或 Navica

  • 若要成功地创建一个新的连接到本地或远程服务器 - 不管通过 SSL、SSH 或 HTTP,都要在常规选项卡中设置连接属性。如果你的互联网服务供应商(ISP)不提供直接访问其服务器,安全隧道协定(SSH)或 HTTP 是另一种解决办法。 【注意】下列的选项会根据连接的服务器类型而有所不同。 添加到 当你登录 Navicat Cloud 功能后,你可以选择保存连接在我的连接或 Navicat Clou

  • 若要成功地创建一个新的连接到本地或远程服务器 - 不管通过 SSL、SSH 或 HTTP,都要在常规选项卡中设置连接属性。如果你的互联网服务供应商(ISP)不提供直接访问其服务器,安全隧道协定(SSH)或 HTTP 是另一种解决办法。 【注意】下列的选项会根据连接的服务器类型而有所不同。 添加到 当你登录 Navicat Cloud 功能后,你可以选择保存连接在我的连接或 Navicat Clou

  • DB2 RazorSQL生成DDL是用于创建用于创建该表的SQL命令。在DB2 RazorSQL生成DDL,可参考以下操作: 生成结果如下:

  • General setup 常规设置 Cross-compiler tool prefix CONFIG_CROSS_COMPILE 交叉编译工具前缀(比如"arm-linux-"相当于使用"make CROSS_COMPILE=arm-linux-"进行编译).除非你想配置后默认自动进行交叉编译,否则不要使用此选项. Compile also drivers which will not loa

  • 问题内容: 我将Spring Boot与结合使用,但是当应用程序重新启动时,所有表都会删除并再次创建。有什么方法可以避免为现有表重新创建? 问题答案: 通常不应该在生产中使用hibernate.ddl- auto 。