如何在liferay服务中获取Text类型而不是String类型

时间:2012-05-16 16:13:01

标签: hibernate liferay liferay-6 database-migration

假设您在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。如果要使用文本类型,则必须手动修改生成的SQL脚本。您似乎也可以编辑portlet-model-hints.xml文件,如此

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

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

但是,如果您需要将字符串中的“answer”字段更新为文本字段,那么表格是否已经在第一个模式之后生成了?

感谢您的回答

2 个答案:

答案 0 :(得分:1)

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

1)尝试取消部署portlet 2)清除工作和临时文件夹 3)重启服务器 4)然后重新部署portlet

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

希望它有所帮助。

答案 1 :(得分:0)

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