我正在工作的公司将客户数据存储在每个客户的单独数据库模式中。他们表示此时无法更改。是否有一种有效的方法来在所有模式中提取数据和更新数据,而无需为每个模式配置连接?我搜索时可以找到的所有东西似乎都在谈论使用一个或几个模式,但我需要同时使用多个(100+)。
答案 0 :(得分:1)
在任何给定的持久化上下文中,每个JPA实体类都映射到特定的基表。是否以及如何通过单个数据库连接轻松访问多个模式是DBMS,JDBC驱动程序以及您的特定数据库的功能,但即使是一般支持您需要的访问类型的组合仍然不允许您可以将同一实体类映射到同一持久化上下文中的多个不同基表。
您可以通过将不同的持久性上下文与每个客户端相关联,为不同的客户端使用相同的实体类,但这不允许您为所有客户端使用相同的数据库连接。因此,如果您可以使用相同的连接,则每个客户端需要不同的实体类。
答案 1 :(得分:0)
您是否考虑过创建新的数据库用户并为单独的数据库模式中的每个表创建SYNONYMS?
然后,您可以将JPA实体映射到您已创建的SYNONYM名称。
使用这种方法,您仍然可以使用一个数据库连接,但将SYNONYMS用于其他模式中的数据库表...