在Hybris中重新定义items.xml中的数据类型
我在items.xml中定义了一个数据类型,如下所示:在Hybris中重新定义items.xml中的数据类型,hybris,Hybris,我在items.xml中定义了一个数据类型,如下所示: <attribute qualifier="daysOfWeek" type="java.lang.String"> <persistence type="property" /> </attribute> 要将数据类型修改为枚举,我将其重新定义如下: <enumtype code="DaysOfWeek" autocrea
<attribute qualifier="daysOfWeek" type="java.lang.String">
<persistence type="property" />
</attribute>
要将数据类型修改为枚举,我将其重新定义如下:
<enumtype code="DaysOfWeek" autocreate="true" generate="true">
<value code="Monday" />
<value code="Tuesday" />
</enumtype>
<attribute qualifier="daysOfWeek" type="DaysOfWeek">
<persistence type="property" />
</attribute>
更新扩展后,我得到了SQLException。这种方法有什么问题吗?hybris不支持在“正在运行”的系统中进行这样的更新。 原因是hybris不会删除任何db列并重新创建它们,因为其中包含的任何数据都将丢失(另外,为多个受支持的数据库编写此逻辑可能很困难) 如果您正处于项目的开发阶段,解决此问题的最简单方法是从头开始初始化系统(即,它将删除数据库并重新创建它) 如果您有一个实时系统/生产系统,您必须采取另一种方法: 您可以使用枚举类型定义一个新属性(不同的名称!)。 然后,您可能会更新任何代码以使用新字段。 您还必须注意数据迁移,即编写一些脚本来传输旧数据(例如,字符串“Monday”到新的相应枚举值) 希望这有帮助