当前位置: 首页 > 面试题库 >

在运行时更改实体的表名?

姬昀
2023-03-14
问题内容

每月都会生成此表。基本上所有 月度 表的表结构都是相同的。

由于仅使用不同的表名来映射同一实体将需要大量工作,

由于实体的表名毕竟具有相同的表结构,是否可以按以下方式更改实体的表名?

   @Entity
   @Table(name="FOO_JAN2010") // any other ways to generate this dynamically?
   public class FooJan2010Table {  // if we can dynamically set the table name this can be simply named FooTable
       ...
   }

如果没有,您可以建议什么方法?


问题答案:

由于实体的表名毕竟具有相同的表结构,是否可以按以下方式更改实体的表名?

这实际上是不可能的,至少对于标准JPA(这不是我对非标准JPA所做的)至少不是这样,如在以下问题中提到的:

  • JPA:如何在运行时指定与类相对应的表名?
  • 休眠或iBatis还是其他?

总而言之,JPA没有提供一种“更改”已初始化持久性单元(以及相关的预编译的CRUD查询,预编译的命名查询等)的给定实体的方法。

不过,由于您使用的是Hibernate,所以也许请看一下http://www.hibernate.org/171.html,以了解使用Hibernate
Core API可能发生的情况。

我可以想到的另一种选择是使用数据库 同义词 / 别名
:在…更改别名以指向之前,FOO将使用它作为别名。我从未测试过,我不知道它是否适合您的需求。但这是另一个想法。FOO_JAN2010``FOO_FEB2010



 类似资料:
  • 问题内容: 如何在运行时更新此环境变量,以便ctypes可以在任何地方加载库?我尝试了以下方法,但似乎都没有用。 问题答案: 在运行诸如Python之类的程序时,动态加载程序(ld.so.1或类似的文件)已经读取LD_LIBRARY_PATH,并且此后将不会注意到任何更改。因此,除非Python软件本身评估LD_LIBRARY_PATH并使用它来构建可能的库路径名或要使用的等效函数,否则在脚本中设

  • 问题内容: 我想向管理界面公开一些(特定于应用程序的)设置,以便用户可以轻松地更改它们,也不必重新启动Django。 我应该怎么做? 我在http://djangopackages.com/grids/g/live-setting/上签出了应用程序(btw django-constance最吸引人),但实际上所有这些应用程序所做的就是将值存储在数据库中,从而提供了一个网站。界面来更改它们,并进行缓

  • 问题内容: 作为Java开发人员,我经常需要在接口的不同实现之间进行选择。有时, 一次 只能进行 一次 选择,而另一些时候,我需要不同的实现来响应程序收到的不同输入。换句话说,我需要能够在运行时 更改 实现。这可以通过一个帮助器对象轻松实现,该对象将一些键(基于用户输入)转换为对适当接口实现的引用。 使用Spring,我可以将这样的对象设计为Bean,然后将其注入到需要的地方: 现在,我应该如何实

  • 如何在运行时更改application.yaml的值?例如,我有一个服务器地址属性,希望在运行时更改

  • 问题内容: 我在页面上使用css动画,并且运行动画时,Safari似乎会更改页面其他位置无关的字体​​权重。知道为什么会这样吗?所有其他浏览器都可以正常运行,包括Chrome等Webkit。 该站点也位于此处但它可能会一直在迅速变化。 我在箭头图标上使用了指南针(@ transition-property,@ transition- duration)。闪烁的标题上未应用任何过渡。在Mac上-可能