java - 在 EclipseLink 中以编程方式创建 <class> 定义

标签 java jpa osgi eclipselink

我正在尝试在 OSGi 环境中使用 EclipseLink。

我想要做的是,构建一个提供程序包,将 EntityManager 公开给其他包。

问题是,实体类无法在编译时确定并写入 persistence.xml 文件。所以我希望能够以编程方式定义实体类。我可以扫描所有实体类,但据我所知,无法在 EclipseLink 中定义它,而在 Hibernate 中可以。 (Hibernate在OSGi环境中存在一些不同的问题,所以我也无法使用它)

如何以编程方式定义实体类?

注意:使用 spring 对我来说不是一个选择;从头开始定义 ClassDescriptor 是 Not Acceptable 。我必须说,JPA 和 EclipseLink 都不直接支持这样一个重要的功能,这真的很愚蠢。

最佳答案

你试过吗<jar-file> persistence.xml 中的标签?

您可以将所有持久性类打包到 jar 中,将其包含到持久性单元包和持久性 xml 中。

JPA2 规范 8.2.1.6.3 中的更多详细信息

关于java - 在 EclipseLink 中以编程方式创建 <class> 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763371/

相关文章:

java - 从持久化实体 JPA 中删除列表的对象

java - Apache OpenJPA - 仅当数据库中不存在时插入元组

java - OSGI 包是否在多个内核上运行

maven - 如何在安装新版本时卸载旧的 OSGI 捆绑版本?

java - 如何构建具有依赖关系的 OSGi 服务并通过 DS 发布

java - 队列中有更多我放入其中的项目

java - 如何在 Java 中表示静态结构

java - 为什么 Spring 的 @Configurable 有时有效,有时无效?

java - Spring Controller : use domain objects as @RequestBody

jpa - 无法为具有多个返回值的查询创建 TypedQuery