【问题标题】:Runtime switch the schema in PostgreSQL using JPA运行时使用 JPA 在 PostgreSQL 中切换模式
【发布时间】:2017-10-10 08:40:08
【问题描述】:

我正在使用 JPA 来管理 PostgreSQL 数据库。数据库中存在多个模式。由于产品要求,我们需要根据输入请求从不同的模式中获取数据。我设法从公共架构中获取数据。

但我找不到配置 JPA 以便它在运行时切换架构并获取数据的解决方案。

【问题讨论】:

    标签: java postgresql jpa


    【解决方案1】:

    你有两个选择。

    如果不同模式的表名不同,最简单的方法是为用户设置一个默认的search_path

    alter user your_user set search_path = public,schema_one,schema_two,schema_four;
    

    完成此操作后,将沿着 search_path 中的模式搜索表。

    再次重申:如果您没有重复的表名,这将起作用。

    另一种选择是在运行查询之前动态更改架构,例如:

    set schema 'schema_one';
    

    【讨论】:

    • 感谢您的回答!!。我在多个模式中有相同的表。所以我会选择第二种选择。我正在使用通过 Spring 感染的 JPAResository 来存储我的实体。所以要在上面运行查询我会使用哪个对象?是 EntityManager 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    相关资源
    最近更新 更多