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

概要

我正在尝试运行Java Web应用程序JPA 2.0示例。 编写示例应用程序是为了在Glassfish运行,使用EclipseLink作为JPA提供程序。 我想将它转换为使用OpenJPA作为JPA提供程序在TomEE运行,但我无法获得有关启动和运行OpenJPA任何详细教程。

问题

我无法将persistence.xml转换为使用OpenJPA而不是EclipseLink 。 更具体地说,给定的persistence.xml没有指定:

  • Entity类。 这些必要吗?
  • 所需的JPA提供者。 容器会默认为什么吗?
  • JDBC驱动程序。 如何指定“内存中”DB(仅用于初始测试目的)?

也:

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

细节

下面是EclipseLink persistence.xml

    jdbc/__default       

我有以下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将自动创建你的所有表,所有主键和所有外键完全匹配你的对象

  

或者,只需将EclipseLink jar添加到/lib/ ,就可以在TomEE中使用EclipseLink。

在这里引用Common PersistenceProvider属性

外键约束

下一行不会创建外键:

  

仅创建模式并删除数据库的内容。

但是,如果要创建外键,请使用以下行:

    

请参阅生成的SQL

换句话说,如果要查看SQL输出:

  

注意 :为了在TomEE控制台中查看生成的输出,您需要使用openjpa.level = FINEST更改文件loggin.properties的日志级别


有关详细信息,请参见http://openjpa.apache.org/faq.html