with example ejemplo anotaciones annotation hibernate annotations hibernate-annotations

example - Emitir largas cadenas persistentes con Hibernate



hibernate-annotations maven (3)

En mi aplicación web, tengo un área de texto cuyos contenidos llenos por el usuario finalmente se conservan en la base de datos con Hibernate. Me he encontrado con un problema que cuando la entrada del usuario supera una cierta duración, la persistencia falla. ¿Hay alguna manera de indicar a través de Hibernate Annotations o en la configuración que este campo particular debería soportar cadenas más largas, y que el tipo de columna de la base de datos debería reflejar esto?

Esta es la excepción que recibo:

Caused by: java.sql.BatchUpdateException: Data truncation: Data too long for column ''introText'' at row 1 at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2007) at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1443) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268) ... 41 more


ok eso es un error de DB en realidad.

Data too long for column ''introText''

verifique la columna introText en su DB y probablemente sea un varchar que tenga un tamaño limitado. Tendrá que cambiar el tipo de almacenamiento a algo más grande para que no trunque su texto.

Si crees que no es así, tendrás que mostrar tu mapeo y esquema.


Tuve un problema similar que resolví asignando el tipo de hibernación "texto" a la propiedad:

@Type(type="text")


Puede usar el parámetro de longitud en la anotación, de esta manera:

@Column(length=1000)

o puede cambiar el tipo de columna a algo así como el texto si su base de datos lo admite, así:

@Column(columnDefinition="text")

Si está utilizando hbm2ddl update, y la columna se creará para usar ese tipo en su lugar (base de datos específica).