我们将支持多个客户端,并且某些数据库表不应该对所有客户端可见。然而,由于易于部署,我们希望为所有客户端提供相同的架构。
1)是否可以“隐藏”一些表,以便我们可以为客户端提供相同的架构,但某些表仅在某些部署中可见?我们使用 Hibernate,我不确定这会如何影响映射。
2) 另一种选择是创建视图并将其映射到 Hibernate,在某些情况下不应该显示物理表结构。这适用于 DB2 数据库吗?
有什么想法吗?感谢您的输入!:)
此刻,当hibernate 打开一个新配置时(即当您调用 时Configuration.configure()
),hibernate 会检查它在hibernate.cfg.xml 中找到的所有映射文件。此检查包括验证表和映射列是否存在。如果它们不存在,你会立即得到一个异常。
您可以做什么:
您向所有客户端提供相同的映射文件,但每个客户端都有自己的 hibernate.cfg.xml,其中只有他拥有的表包含在<mapping...>
标记中。在这种情况下,您甚至可以为同一个表提供不同的映射文件(如果不同的客户端具有此表的不同版本,这很有用),并且在 hibernate.cfg.xml 中只提到了这些映射文件中的一个。