Verhindern, dass lange Strings mit Hibernate beibehalten werden

7

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 Annotations oder in der Konfiguration anzugeben, dass dieses bestimmte Feld längere Zeichenfolgen unterstützen soll und dass der Datenbankspaltentyp dies widerspiegeln sollte?

Hier ist die Ausnahme, die ich bekomme:

%Vor%     
lupefiasco 21.01.2010, 20:35
quelle

3 Antworten

20

Sie könnten den length -Parameter für die Annotation verwenden, etwa so:

%Vor%

oder Sie könnten den Spaltentyp in etwas wie Text ändern, wenn Ihre Datenbank dies unterstützt:

%Vor%

Wenn Sie hbm2ddl update verwenden, wird stattdessen die Spalte erstellt, die diesen Typ verwendet (datenbankspezifisch).

    
lucas 21.01.2010 21:06
quelle
5

Ich hatte ein ähnliches Problem, das ich gelöst habe, indem ich der Eigenschaft den Hibernate-Texttyp zugewiesen habe:

%Vor%     
Samuel Rossille 05.07.2013 17:33
quelle
0

ok das ist eigentlich ein DB-Fehler.

%Vor%

Überprüfen Sie die IntroText-Spalte in Ihrem DB und es ist wahrscheinlich ein Varchar, das nur in der Größe begrenzt ist. Sie müssen den Speichertyp auf etwas Größeres ändern, damit Ihr Text nicht abgeschnitten wird.

Wenn Sie denken, dass dies nicht der Fall ist, müssen Sie Ihr Mapping und Schema zeigen.

    
Arthur Thomas 24.01.2010 21:17
quelle