Model 获取异常java.sql.BatchUpdateException:数据截断:数据对于列';XXXX和x27;

Model 获取异常java.sql.BatchUpdateException:数据截断:数据对于列';XXXX和x27;,model,liferay,portlet,liferay-6,sqlexception,Model,Liferay,Portlet,Liferay 6,Sqlexception,我在liferay6中有自己的自定义portlet,在数据库中插入长数据时出现异常,如java.sql.BatchUpdateException:data truncation:data long for column'XXXX'在第1行 即使我在portlet模式提示中给出了以下参数,这种情况也会发生 <field name="advurl" type="String"> <hint name="max-length&

我在liferay6中有自己的自定义portlet,在数据库中插入长数据时出现异常,如
java.sql.BatchUpdateException:data truncation:data long for column'XXXX'在第1行

即使我在
portlet模式提示中给出了以下参数,这种情况也会发生

<field name="advurl" type="String">
    <hint name="max-length">4000</hint>
</field>
有人能给我一些建议吗?

转换我的答案来解决这个问题:-)

您应该在
portal model hints.xml
文件中进行更改后重新构建服务

然后您应该重新部署插件portlet以使更改生效

因此,请在执行上述步骤后检查数据库列是否已更新。

将我的答案转换为解决此问题的答案:-)

您应该在
portal model hints.xml
文件中进行更改后重新构建服务

然后您应该重新部署插件portlet以使更改生效


因此,请检查在执行上述步骤后数据库列是否已更新。

当您使用service.xml创建的表(字段长度)与提交的表不同时,会出现此错误

您可以尝试使用属性maxlength=“4000”限制文本框或文本区域
这不允许您发布超过4000个单词。

当您使用service.xml创建的表(字段长度)与您提交的表不同时,会出现此错误

您可以尝试使用属性maxlength=“4000”限制文本框或文本区域
这不允许您发布超过4000字的内容。

在重新构建服务并重新部署portlet后,您可以检查数据库列是否已更新吗?是的……它在mysql数据库中使用longtext数据类型进行了更新,但我没有重新部署。让我尝试重新部署portletyes……它已工作……thanx……您可以检查在您重新构建服务并重新部署portlet后,数据库列已更新?是的…它已在mysql数据库中更新为longtext数据类型,但我没有重新部署它…让我尝试重新部署portletyes…它已工作…thanx。。。
Caused by: com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.DataException: Could not execute JDBC batch update
    at com.liferay.portal.dao.orm.hibernate.ExceptionTranslator.translate(ExceptionTranslator.java:30)
    at com.liferay.portal.dao.orm.hibernate.SessionImpl.flush(SessionImpl.java:122)
    at com.liferay.portal.kernel.dao.orm.ClassLoaderSession.flush(ClassLoaderSession.java:218)
    at com.liferay.portal.service.persistence.BatchSessionImpl.update(BatchSessionImpl.java:95)
    at com.liferay.portal.service.persistence.BatchSessionUtil.update(BatchSessionUtil.java:50)
    at emenu.advertise.database.service.persistence.advertisePersistenceImpl.updateImpl(advertisePersistenceImpl.java:505)
    ... 178 more
Caused by: org.hibernate.exception.DataException: Could not execute JDBC batch update
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:102)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
    at com.liferay.portal.dao.orm.hibernate.SessionImpl.flush(SessionImpl.java:119)
    ... 182 more
Caused by: java.sql.BatchUpdateException: Data truncation: Data too long for column 'advlink' at row 1
    at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1257)
    at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:943)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
    ... 188 more