首页 > 解决方案 > Hybris - 无法增加 MySql DB 中的列大小

问题描述

我正在尝试将列大小从默认的 255 个字符增加到 1024 个字符。请注意,这是一个现有的生产项目类型(AbstractOrderEntry)和属性(productDescription)。系统初始化是不可能的。

到目前为止,我已经尝试了这两种方法。

  1. 修改 *-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>
    
  2. 蚂蚁清理所有和系统更新。没用

其他方法是:从 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?

标签: javamysqlhybriscommerce

解决方案


在您的问题中,您提到了两种方法。我认为您可以通过结合这两种方法来实现您的目标,即

  1. 修改$exntesion-items.xml --> ant clean all --> ant updatesystem
  2. 直接在数据库上运行alter语句并启动Hybris

相关: sap wiki 的摘录:

在此处输入图像描述

参考:help.sap.com


推荐阅读