【发布时间】:2017-10-10 08:40:08
【问题描述】:
我正在使用 JPA 来管理 PostgreSQL 数据库。数据库中存在多个模式。由于产品要求,我们需要根据输入请求从不同的模式中获取数据。我设法从公共架构中获取数据。
但我找不到配置 JPA 以便它在运行时切换架构并获取数据的解决方案。
【问题讨论】:
标签: java postgresql jpa
我正在使用 JPA 来管理 PostgreSQL 数据库。数据库中存在多个模式。由于产品要求,我们需要根据输入请求从不同的模式中获取数据。我设法从公共架构中获取数据。
但我找不到配置 JPA 以便它在运行时切换架构并获取数据的解决方案。
【问题讨论】:
标签: java postgresql jpa
你有两个选择。
如果不同模式的表名不同,最简单的方法是为用户设置一个默认的search_path:
alter user your_user set search_path = public,schema_one,schema_two,schema_four;
完成此操作后,将沿着 search_path 中的模式搜索表。
再次重申:如果您没有重复的表名,这将仅起作用。
另一种选择是在运行查询之前动态更改架构,例如:
set schema 'schema_one';
【讨论】: