In meiner Webanwendung habe ich einen Textbereich, dessen vom Benutzer gefüllte Inhalte letztlich mit Hibernate in der db gespeichert werden. Ich bin auf ein Problem gestoßen, dass, wenn die Benutzereingabe über eine bestimmte Länge hinausgeht, die Persistenz fehlschlägt. Gibt es eine Möglichkeit, über Hibernate-Annotationen oder in der Konfiguration anzugeben, dass dieses bestimmte Feld längere Zeichenfolgen unterstützen soll und dass der Datenbank-Spaltentyp dies widerspiegeln sollte?Behalten Sie lange Zeichenketten mit Hibernate aus
Hier ist die Ausnahme, die ich bekomme:
@Column(length=1000)
oder Sie können den Spaltentyp zu so etwas wie ändern:
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
warum sagen Sie es nicht? schneidet es die Zeichenfolge im Hintergrund still oder erhalten Sie eine Fehlermeldung? Wenn Sie Hibernate mitteilen, dass es sich um einen String-Typ handelt, wird versucht, alles zu speichern. –
Der Benutzerinhalt wird in einem String-Objekt festgelegt. Während der Persistenz wird eine Ausnahme ausgelöst. – lupefiasco
Könnten Sie die Ausnahme in Ihren Post setzen? :) und vielleicht das Snippet von deinem aktuellen Mapping. –