我尝试了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文档来更新表中的列长度。
非常感谢您的帮助。
答案 0 :(得分:0)
我建议您通过session.connection()
运行此本机SQL查询。
请参阅16.2.2.1. Rules/limitations for using stored procedures的 Chapter 16. Native SQL 部分,它位于 ALTER 查询附近。
所有其他内容取决于您的数据库供应商。祝你好运!
答案 1 :(得分:0)
我找不到办法。看起来像一个限制。我添加了一个新字段,并在启动时复制旧字段中的数据!