【问题标题】:How can I change column length using HQL query?如何使用 HQL 查询更改列长度?
【发布时间】:2023-03-24 11:27:01
【问题描述】:

我试过session.createSQLQuery("ALTER TABLE People MODIFY address VARCHAR(1000);").executeUpdate();

但这会引发org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query

经过大量谷歌搜索,建议使用 HQL 而不是 SQL 查询来进行批量更新。不知道如何使用 HQL 来实现这一点。似乎没有像样的 HQL 文档来更新表中的列长度。

非常感谢您的帮助。

【问题讨论】:

  • 没有帮助,看起来无法更改列,所以我添加了一个新列并在启动时手动将数据复制到新列。新代码使用新列,旧列存在但未使用。这解决了我的问题。仍然想知道是否有人对原始问题有解决方案。

标签: sql schema hql bulk


【解决方案1】:

我建议您通过 session.connection() 运行这个原生 SQL 查询。

请参阅Chapter 16. Native SQL16.2.2.1. Rules/limitations for using stored procedures 部分,它在您的 ALTER 查询附近。

其余的都取决于您的数据库供应商。祝你好运!

【讨论】:

    【解决方案2】:

    我找不到方法。看起来像一个限制。我在启动时添加了一个新字段并从旧字段复制了数据!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2011-06-15
      • 2018-04-06
      相关资源
      最近更新 更多