【问题标题】:Hibernate choose database name for entitiesHibernate 为实体选择数据库名称
【发布时间】:2019-10-25 14:59:02
【问题描述】:

你必须知道MySQL 命名空间和数据库本质上是一回事。

我如何告诉休眠使用特定的db 来代替Entity。它默认使用spring.datasource.url 中定义的那个。所以这里它会在db1 数据库中查找实体。

spring.datasource.url=jdbc:mysql://localhost:3306/db1

如果我使用 @Table(name= db2.sample_table) 它正在寻找 db1.db2_sample_table

【问题讨论】:

  • @Table 注释有一个schema 属性。 @Table(name = "sample_table", schema="db2") 应该足够了。
  • 这似乎不起作用,它忽略了架构并仅查看默认架构。
  • 由于您的问题已被查看 11 次,因此可能是其他任何人对您的问题进行了投票。我没有理由关闭它。顺便说一句:您可以接受自己的答案。

标签: hibernate


【解决方案1】:

显然,Hibernate 5.0+ 和MySql 中似乎有一个bug,并且使用模式语法不起作用,因为MySql considers both schema and database same

@Table(name="some_table", schema="db2")

可以使用catalog 代替schema

@Table(name="some_table", catalog="db2")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 2017-09-08
    • 2020-03-09
    相关资源
    最近更新 更多