访问JPA类映射

时间:2012-07-10 21:45:53

标签: jpa schema metamodel

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

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

我们正在使用纯jpa,但是使用LocalContainerEntityManagerFactory并且无法访问Session或Conofiguration实例。

任何人都可以提供有关如何在运行时(通过entitymanager)访问元数据以允许修改架构的见解吗?

由于

2 个答案:

答案 0 :(得分:1)

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

另一方面,

JDO允许您使用标准化API动态定义元数据(以及架构)。

答案 1 :(得分:1)

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

如果您正在使用EclipseLink,则可以使用Session登录时的setTableQualifier()API设置架构。