Java org.postgresql.util.PSQLException:错误:值太长,无法更改类型字符(255)
当我执行项目时,会出现以下错误: 目标是使用hibernate将Java org.postgresql.util.PSQLException:错误:值太长,无法更改类型字符(255),java,postgresql,hibernate,spring-boot,spring-data-jpa,Java,Postgresql,Hibernate,Spring Boot,Spring Data Jpa,当我执行项目时,会出现以下错误: 目标是使用hibernate将json文本保存到数据库中 Users.java&UsersBooks.java也是如此 Books.java: @Entity @Table(name="tblbooks") public class Books { @Id @Column(name = "bookshareId") private int bookshareId; @Column(name="author") private String author
json
文本保存到数据库中
Users.java
&UsersBooks.java
也是如此
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
@实体
@表(name=“tblbooks”)
公共课用书{
@身份证
@列(name=“bookshareId”)
私人书斋;
@列(name=“author”)
私有字符串作者;
@列(name=“availableToDownload”)
私人互联网可供下载;
@列(name=“简介”)
私人字符串简介;
@列(name=“category”)
私有字符串类别;
@列(name=“completeSynopsis”)
私有字符串完全同步;
@列(name=“contentId”)
私有int-contentId;
@专栏(name=“版权”)
私人日期版权;
@列(name=“downloadFormat”)
私有字符串下载格式;
@列(name=“dtbookSize”)
私人书刊;
@列(name=“freelyAvailable”)
私人int免费提供;
@列(name=“brf”)
私人国际信托基金;
@列(name=“daisy”)
私人雏菊;
@列(name=“images”)
私有int图像;
@列(name=“isbn13”)
私有字符串isbn13;
@列(name=“language”)
私有字符串语言;
@列(name=“publishDate”)
私人日期发布日期;
@列(name=“publisher”)
私有字符串发布器;
@列(名称=“质量”)
私人字符串质量;
@列(name=“title”)
私有字符串标题;
@OneToMany(mappedBy=“book”)
私有列表用户书籍;
//接球手和接球手
您试图保存长度超过255个字符的字符串值。只需增加列长度即可
@Column(name = "xxx", length = 1024)
您还需要更改数据库中的列长度
当你使用
@Column(name = "xxx")
Hibernate使用默认的列长度
对于非常大的文本数据,可以使用@Lob
请使用xxx\u用户
代替t用户
使用用户
代替用户
使用关联的@OneToMany
部分上的CascadeType.ALL
对关联的@ManyToOne
部分使用延迟加载
@ManyToOne(fetch = FetchType.Lazy)
pravate User user;
错误消息表示您试图存储的字符串对于其目标列(255)来说太大 您可以:
- 增加列大小或
- 将列类型更改为
,而不是TEXT
VARCHAR(255)
@Column(length = 2048)
private String column;
对于大尺寸:
@Lob
private String column;
对于无限大小:
@Column(columnDefinition="text")
private String column;
在数据库中,您已设置字段类型字符,其长度为255,这是因为在这里,请将最大值255更改为1000(大于255),或者将类型从字符更改为文本或varchar。发送到PostgreSQL的SQL是什么?