假设您在service.xml中有这种实体
<entity name="Answer" local-service="true" remote-service="true">
<!-- PK fields -->
<column name="answer_id" type="long" primary="true" />
<!-- Other fields -->
<column name="user_id" type="long" />
<column name="answer" type="String" />
<column name="date_answered" type="Date" />
</entity>
我对this和this等帖子的理解是,使用Liferay 6 Service Builder,您只能指定String类型而不是Text。如果要使用文本类型,则必须手动修改生成的SQL脚本。您似乎也可以编辑portlet-model-hints.xml文件,如此
<field name="answer" type="String">
<hint name="max-length">5000</hint>
</field>
在这种情况下,字段类型将在生成的SQL文件中设置为“TEXT”。
但是,如果您需要将字符串中的“answer”字段更新为文本字段,那么表格是否已经在第一个模式之后生成了?
感谢您的回答
答案 0 :(得分:1)
理想情况下,当您对service.xml进行一些更改时,它应自动更改数据库表。
1)尝试取消部署portlet 2)清除工作和临时文件夹 3)重启服务器 4)然后重新部署portlet
注意:更新portlet-model-hints.xml是正确的方法,而不是更新sql文件。
希望它有所帮助。
答案 1 :(得分:0)
在这种情况下,删除tables.sql中的所有条目,并在更新字段后重建您的服务。