【问题标题】:How to set various Databases for one entity ? [HIBERNATE]如何为一个实体设置各种数据库? [休眠]
【发布时间】:2015-10-19 11:39:06
【问题描述】:

我有一个实体,它根据我如何称呼这个实体从各种表中检索其数据,它显示在这里:hibernate two tables per one entity 这对我来说很好。但是如何设置休眠来为一个实体调用各种数据库呢?

【问题讨论】:

  • 请描述您的需求,以便给出具体答案。
  • @Amogh 。如果可能的话,我会寻找与我链接的类似的答案,否则我愿意接受新的建议。这个想法是,当我的 java 程序根据它获得的输入运行时,它将 x 实体类连接到 y 数据库的所需表 x 。为了简单起见,假设我有 3 个实体变体,每个变体都有它的数据到另一个数据库,但仍保持相同的架构。
  • 为此你必须定义多个sessionFactory(数据源)看看javabeat.net/configuring-multiple-databases-in-hibernate或者在春天你可以动态改变数据源:stackoverflow.com/questions/13507522/…
  • @Amogh 。感谢您提供有用的反馈,我想我可以应付。没有意思让你厌烦我还有一个问题,有人告诉我这可以用鉴别器值来完成,这可能吗?再次感谢您提供这些链接。
  • 解释被添加为答案,因为 cmets 太健谈了,我希望解释能解决所有问题,但仍然可以随时问我任何问题,如果我有任何错误也请纠正我

标签: java hibernate hibernate-mapping


【解决方案1】:

根据您希望使用多个数据库处理单个实体的需要。 (如果我错了,请再次纠正我)

所以要在休眠中使用多个数据库,请参考链接12,因为它在 SO 上被多次询问。

关于鉴别器值(discriminator-value),我不认为这是完全可能的,因为根据文档3 鉴别器用于继承目的。

我的理解是,如果您有 2 个 DB,其表 Student 具有两个连接类 BadStudentGoodStudent,但用于工作的数据库仅由数据源配置的休眠会话工厂决定(DB ),所以如果你想处理 2 个数据库,你必须定义两个数据源。

如果我误解了您的要求或疑问,请纠正我。

【讨论】:

  • 你是对的,但我会纠正你,在我的情况下我没有子类,就像我在上面链接了我的链接,但我认为它不会改变 session factory计划。感谢您的全面回复 (y)。
  • @Kosta 哦,我知道了。我很高兴我帮助了你。祝福。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多