【发布时间】:2019-11-27 00:54:35
【问题描述】:
我正在尝试将列大小从默认的 255 个字符增加到 1024 个字符。请注意,这是一个现有的生产项目类型(AbstractOrderEntry)和属性(productDescription)。系统 init 是不可能的。
到目前为止,我已经尝试了这两种方法。
-
修改 *-items.xml 文件。
<attribute qualifier="productDescription" type="java.lang.String"> <modifiers unique="false" optional="true" read="true" write="true"/> <persistence type="property"> <columntype database="oracle"> <value>varchar(1024)</value> </columntype> <columntype database="sqlserver"> <value>nvarchar(1024)</value> </columntype> <columntype database="hsqldb"> <value>VARCHAR(1024)</value> </columntype> <columntype> <value>varchar(1024)</value> </columntype> </persistence> </attribute> - ant clean all & 系统更新。 没用
其他方法是: 从 mySql Workbench 执行 alter 语句。
ALTER TABLE `hybrisDB`.`quoteentries`
CHANGE COLUMN `p_productdescription` `p_productdescription` VARCHAR(1024) NULL DEFAULT NULL ;
我可以看到 SQL 工作台增加了列大小。但是当我试图从 Hybris 中保存值时,它会引发运行时异常。
INFO | jvm 1 | main | 2019/11/26 14:27:20.262 | com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'p_productdescription' at row 1
INFO | jvm 1 | main | 2019/11/26 14:27:20.262 | at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4118)
INFO | jvm 1 | main | 2019/11/26 14:27:20.262 | at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)```
Restarted Hybris after executing direct SQL statement from DB.
Any other inputs?
【问题讨论】:
-
我采用了直接 SQL 语句的方法。事实上,我必须做 3 条 sql 语句 - cartentries、quoteentries、orderentries
-
另外,通过直接 SQL 更新,我不必执行 updatesystem / restart hybris。
标签: java mysql hybris commerce