1

在 springsource 中找到了一篇文章,描述了如何在运行时操作模式名称。

http://forum.springsource.org/showthread.php?18715-chang-hibernate-schemas-at-runtime

我们使用的是纯 jpa,但是在哪里使用 LocalContainerEntityManagerFactory 并且无权访问 Session 或 Conofiguration 实例。

谁能提供有关如何在运行时(通过实体管理器)访问元数据以允许修改架构的见解?

谢谢

4

2 回答 2

1

您不能使用标准 JPA(这是您的问题所要求的);它不允许您动态定义元数据,只能通过其元模型 API 查看(有限数量的)指定元数据。您必须深入研究实现细节才能走得更远,但是那时您的可移植性就会下降,这不是一件好事。

另一方面,JDO确实允许您使用标准化的 API 动态定义元数据(以及架构)。

于 2012-07-11T06:32:23.490 回答
1

在运行时更改元数据是特定于 JPA 提供程序的。JPA 允许您在创建 EntityManagerFactory 或 EntityManager 时传递提供者特定属性的 Map。JPA 还允许您将 EntityManager 解包()到提供者特定的实现。

如果您使用的是 EclipseLink,您可以在会话登录时使用 setTableQualifier() API 设置模式。

于 2012-07-11T15:35:57.147 回答