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