【发布时间】:2016-01-19 09:51:32
【问题描述】:
我有下一个问题:我在数据库中有几个表,不知何故我需要从其中一个表中进行查询,但只有在运行时我才会知道所需表的名称,所以是否有可能通过表名到运行时实体的@Table 注释?所有这些表都具有完全相同的架构。唯一的区别 - 是名称(BILLING_DATA_2016_1、BILLING_DATA_2015_12 等)。有人知道如何动态传递表的名称吗?或者可能是查询和继承的一些技巧?
【问题讨论】:
-
我认为这取决于您何时可以确定表名,我不太确定您如何多次执行此操作,但您当然可以使用 SpEL 设置一次,您的应用程序是否需要设置表名一次还是多次?
-
不幸的是多次。表名称取决于在客户端设置的时间段,因此在每个新请求中我都需要更新 @Table 注释
-
我认为你无法解决这个问题。如果您无法更改架构,请考虑与您建议的相反:创建所有数据表的统一数据库视图(基于联合查询)并将实体映射到此。使用标准日期运算符查询此实体。
-
@AlanHay,这似乎是解决问题的最佳变体......谢谢