2016-04-06 20 views
3

ich dieses error enter image description hereorg.postgresql.util.PSQLException: ERROR: Wert zu lang für Typ character varying (255)

wenn meine projectexecuting und ich weiß nicht, warum.

Ziel ist es, saveJson Text in ein database von hibernate verwenden.

Users.java & UsersBooks.java ebenfalls ist,

enter image description here

Books.java:

@Entity 
@Table(name="tblbooks") 
public class Books { 


@Id 
@Column(name = "bookshareId") 
private int bookshareId; 

@Column(name="author") 
private String author; 

@Column(name = "availableToDownload") 
private int availableToDownload; 

@Column(name = "briefSynopsis") 
private String briefSynopsis; 

@Column(name="category") 
private String category; 

@Column(name = "completeSynopsis") 
private String completeSynopsis; 

@Column(name = "contentId") 
private int contentId; 

@Column(name = "copyright") 
private Date copyright; 

@Column(name="downloadFormat") 
private String downloadFormat; 

@Column(name="dtbookSize") 
private int dtbookSize; 

@Column(name = "freelyAvailable") 
private int freelyAvailable; 

@Column(name = "brf") 
private int brf; 

@Column(name = "daisy") 
private int daisy; 

@Column(name = "images") 
private int images; 

@Column(name = "isbn13") 
private String isbn13; 

@Column(name="language") 
private String language; 

@Column(name = "publishDate") 
private Date publishDate; 

@Column(name = "publisher") 
private String publisher; 

@Column(name = "quality") 
private String quality; 

@Column(name = "title") 
private String title; 

@OneToMany(mappedBy="book") 
private List<UsersBooks> usersBooks; 



//Getters & Setters 
+0

in Datenbank Sie haben Feldtyp Charakter und seine Länge ist 255, die Ursache ist hier, p Miete, entweder max. 255 bis 1000 (länger als 255) oder ändern Sie den Typ von Zeichen in Text oder Varchar. –

+0

Wie wird SQL an PostgreSQL gesendet? –

Antwort

5

Sie versuchen, einen String-Wert mehr als 255 Zeichen Länge zu speichern. Erhöhen Sie einfach eine Spaltenlänge

@Column(name = "xxx", length = 1024) 

Sie müssen auch eine Spaltenlänge in der Datenbank ändern.

Wenn Sie

@Column(name = "xxx") 

Hibernate verwendet eine Standard-Spaltenlänge.

Sie können @Lob für eine wirklich große Textdaten verwenden.

Bitte verwenden Sie xxx_users anstelle von tblusers.

Verwenden Sie User anstelle von Users.

Verwenden Sie CascadeType.ALL auf dem @OneToMany Teil der Zuordnung.

Verwenden Sie einen Lazy Loading auf dem @ManyToOne Teil der Zuordnung.

@ManyToOne(fetch = FetchType.Lazy) 
pravate User user; 
1

Die Fehlermeldung besagt, dass Sie versuchen, eine Zeichenfolge zu speichern, die für die Zielspalte (255) zu groß ist.

Sie können entweder:

  • die Spaltengröße erhöhen oder
  • Ändern der Spaltentyp TEXT statt VARCHAR(255).
0

Für String mit mehr als 255 Zeichen Länge, die Sie Spaltenlänge erhöhen:

@Column(length = 2048) 
private String column; 

Für große Größe:

@Lob 
private String column; 

Für unbegrenzte Größe:

@Column(columnDefinition="text") 
private String column; 
Verwandte Themen