我正在使用liferay并希望将图像存储在我的MySQL数据库中。 我的service.xml是这样的:
<entity name="DLApp" local-service="true" remote-service="true">
<column name="blobId" type="long" primary="true" />
<column name="desc" type="String" />
<column name="image" type="Blob" />
</entity>
当我构建服务时,我得到了BUILD SUCCESSFUL消息,但是blobuploadModelImpl类中的包com.test.blob.upload出错了。
我应该如何编写函数来将图像存储在数据库中并检索它?
答案 0 :(得分:1)
我有与Blob相同的问题,所以我将其更改为String类型,它应该将最多10 MB的图像存储为字符串,我使用MySql作为数据库,这些列被映射为LONGTEXT。 此外,字段应在模型提示中“暗示”为CLOB,请参见下面的示例。
<entity name="UserExt" local-service="true" remote-service="true">
<column name="photo" type="String" />
</entity>
<model-hints>
<model name="com.project.model.UserExt">
<field name="photo" type="String">
<hint-collection name="CLOB" />
</field>
</model>
</model-hints>
另外,您可以将图像存储到Liferay的图库中。
答案 1 :(得分:0)
假设我的实体名称是SB_Claims所以我通常在SB_ClaimsModelImpl.java类中出现错误
sb_ClaimsModelImpl._ContentBlobModel = null;
未声明或定义sb_ClaimsModelImpl变量。我们刚刚在服务构建操作后声明了这个变量。如果再次构建服务,则此代码将由服务构建器删除。始终是服务构建后的代码,然后不构建服务只需部署您的portlet。 这将解决问题。在下面我只修改那个类。
@Override
public void resetOriginalValues()
{
SB_ClaimsModelImpl sb_ClaimsModelImpl=this;
sb_ClaimsModelImpl._ContentBlobModel = null;
}
希望这对某人有用。