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添加到
,就可以在TomEE中使用EclipseLink。
在这里引用Common PersistenceProvider属性
外键约束
下一行不会创建外键:
仅创建模式并删除数据库的内容。
但是,如果要创建外键,请使用以下行:
请参阅生成的SQL
换句话说,如果要查看SQL输出:
注意 :为了在TomEE控制台中查看生成的输出,您需要使用openjpa.level = FINEST
更改文件loggin.properties
的日志级别
有关详细信息,请参见http://openjpa.apache.org/faq.html