【问题标题】:How do I put backticks in a column name called key for hibernate如何将反引号放在名为 key for hibernate 的列名中
【发布时间】:2013-06-16 18:32:32
【问题描述】:

我有一个无法修改但必须插入值的 MySQL 数据库表。它有一个名为key 的列,我需要将其插入。

现在,我的 .hbm.xml 文件有:

    <property name="key"
          type="string"
          column="key" />

因此生成的插入查询失败。添加 [key] 时,生成的 SQL 现在包含 key,但这也失败了。检查MYSql Workbench,发现key可以工作。

但是,如果我在上述文件中更改它,它会恢复为使用 [key] 时的“key”。有人可以指导我如何添加key 并实现所需的插入吗?

【问题讨论】:

    标签: java mysql hibernate key reserved-words


    【解决方案1】:

    对此有一个休眠配置选项。它需要 Hibernate 3.5,根据您对 hbm 文件的使用情况,我不确定您是否正在使用它。

    在你的休眠配置集中

    hibernate.globally_quoted_identifiers=true
    

    环境配置列表为here

    【讨论】:

    • 对于 mysql,我认为这行不通。最后,我通过执行 column="'key'" 解决了它
    • @gran_profaci:它为我解决了这个问题,我使用的是 MySQL 5.5。
    • @Lionel 这会将反引号添加到表名和数据库名,但不会添加到列名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2019-06-24
    相关资源
    最近更新 更多