0

我想使用动态表名创建到数据源的休眠映射。这些表反映了旧工具从另一个来源提取的数据集,并且表名本身包含有关表中数据的元信息。每个请求的表名都会改变。

是否可以在休眠中映射它?我正在考虑一些临时拦截器来更改表​​名,但不能真正围绕最好的方法来做这件事。


2012 年 12 月 7 日编辑

..我可能应该提到只读访问是我所需要的。表格代表“报告”数据,因此不应更改。

4

1 回答 1

1

由于 sessionfactory 是不可变的,因此使用 hibernate 动态表名并不容易。您每次都需要建立一个新的会话工厂。根据用例,我看到几个选项:

  • 只读:使用具有固定列别名的 sqlquery 并使用 AliasToBean
  • r* ead write: * 使用 xml 映射模板并在每个请求上建立一个新的 sessionfactory(可能很慢)
  • 如果可能的表名在启动时已知:为每个表名生成一个映射并使用实体名来区分在运行时使用哪个表名
于 2012-07-09T06:02:31.067 回答