在springsource中找到一篇文章,介绍如何在运行时操作模式名称。
http://forum.springsource.org/showthread.php?18715-changing-hibernate-schemas-at-runtime
我们正在使用纯jpa,但是使用LocalContainerEntityManagerFactory并且无法访问Session或Conofiguration实例。
任何人都可以提供有关如何在运行时(通过entitymanager)访问元数据以允许修改架构的见解吗?
由于
答案 0 :(得分:1)
您无法使用标准JPA(根据您的问题,这是您的要求);它不允许您动态定义元数据,只允许通过其元模型API查看(数量有限)指定的元数据。你必须深入研究实现细节才能进一步发展,但那时你的可移植性会下降,这不是一件好事。
另一方面,JDO允许您使用标准化API动态定义元数据(以及架构)。
答案 1 :(得分:1)
在运行时更改元数据是JPA提供程序特定的。 JPA允许您在创建EntityManagerFactory或EntityManager时传递提供程序特定属性的Map。 JPA还允许您将EntityManager解包()到提供者特定的实现。
如果您正在使用EclipseLink,则可以使用Session登录时的setTableQualifier()API设置架构。