web-dev-qa-db-fra.com

org.postgresql.util.PSQLException: ERROR: valeur trop longue pour le caractère de type variant (255)

Je reçois cette error enter image description here

quand executing mon project et je ne sais pas pourquoi.

L’objectif est d’écrire saveJson dans un database en utilisant hibernate.

Users.Java & UsersBooks.Java est également,

 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
7
Albin Gjoka

Vous essayez de sauvegarder une valeur de chaîne de plus de 255 caractères. Il suffit d'augmenter une longueur de colonne

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

vous devez également modifier une longueur de colonne dans la base de données.

Quand vous utilisez

@Column(name = "xxx")

Hibernate utilise une longueur de colonne par défaut.

Vous pouvez utiliser @Lob pour des données texte très volumineuses.

Veuillez utiliser xxx_users au lieu de tblusers

Utilisez User au lieu de Users

Utilisez CascadeType.ALL sur la partie @OneToMany de l'association. 

Utilisez un chargement paresseux sur la partie @ManyToOne de l'association.

@ManyToOne(fetch = FetchType.Lazy)
pravate User user;
9
v.ladynev

Pour une chaîne de plus de 255 caractères, vous pouvez augmenter la longueur de la colonne: 

@Column(length = 2048)
private String column;

Pour les grandes tailles: 

@Lob
private String column;

Pour taille illimitée:

@Column(columnDefinition="text")
private String column;
1
veben

Le message d'erreur indique que vous essayez de stocker une chaîne trop grande pour sa colonne de destination (255).

Tu peux soit :

  • Augmenter la taille de la colonne ou
  • Changez le type de colonne en TEXT au lieu de VARCHAR(255).
0
Arnaud Denoyelle