2

假设您的 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>

我的理解是,查看类似thisthis的帖子,使用 Liferay 6 Service Builder,您只能指定 String 类型,但不能指定 Text。如果要使用 Text 类型,则必须手动修改生成的 SQL 脚本。看来您也可以像这样编辑 portlet-model-hints.xml 文件

<field name="answer" type="String">
    <hint name="max-length">5000</hint>
</field>

在这种情况下,字段类型将在生成的 SQL 文件中设置为“TEXT”。

但是,如果您需要将“答案”字段从字符串更新为文本字段,并且表已经按照第一个模式生成,该怎么办?

谢谢您的回答

4

2 回答 2

1

理想情况下,当您对 service.xml 进行一些更改时,它应该会自动更改数据库表。

1) 尝试取消部署 portlet 2) 清除 work 和 temp 文件夹 3) 重新启动服务器 4) 然后重新部署 portlet

注意:更新 portlet-model-hints.xml 是正确的方法,而不是更新 sql 文件。

希望能帮助到你。

于 2012-05-17T07:04:41.633 回答
0

在这种情况下,从 tables.sql 中删除所有条目,并在更新字段后重建您的服务。

于 2012-05-16T17:41:26.717 回答