org.postgresql.util.PSQLException:错误:类型字符变化的值太长(255)

时间:2016-04-06 08:58:09

标签: java hibernate postgresql gson

我得到了这个error enter image description here

executing我的project时,我不知道原因。

目标是使用saveJson database文字加入hibernate

Users.java& UsersBooks.java同样是,

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

3 个答案:

答案 0 :(得分:11)

您尝试保存超过255个字符长度的字符串值。只需增加列长

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

您还需要更改数据库中的列长度。

使用时

@Column(name = "xxx")

Hibernate使用默认列长度。

您可以使用@Lob获取非常大的文本数据。

请使用xxx_users代替tblusers

使用User代替Users

在关联的CascadeType.ALL部分使用@OneToMany

在关联的@ManyToOne部分使用延迟加载。

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

答案 1 :(得分:1)

错误消息告诉您正在尝试存储对于其目标列(255)而言太大的字符串。

你可以:

  • 增加列大小或
  • 将列类型更改为output elasticsearch hosts => ["localhost:9200"] sniffing => true manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" #document_type => "%{[@metadata][type]}" ,而不是TEXT

答案 2 :(得分:1)

对于超过255个字符长度的字符串,您可以增加列长度:

@Column(length = 2048)
private String column;

对于大尺寸:

@Lob
private String column;

无限大小:

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