当前位置: 首页 > 知识库问答 >
问题:

组织。postgresql。util。PSQLException:错误:值太长,无法更改类型字符(255)

堵彬彬
2023-03-14

目标是使用hibernate将json文本保存到数据库中。

<代码>用户。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

共有3个答案

明正德
2023-03-14

错误消息表明您试图存储的字符串对于其目标列(255)来说太大。

您可以:

  • 增加列大小或
  • 将列类型更改为“TEXT”,而不是“VARCHAR(255)”
董联
2023-03-14

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

@Column(length = 2048)
private String column;

对于大尺寸:

@Lob
private String column;

对于无限尺寸:

@Column(columnDefinition="text")
private String column;
白念
2023-03-14

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

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

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

当您使用

@Column(name = "xxx")

Hibernate使用默认列长度。

对于非常大的文本数据,可以使用Lob。

请使用xxx_用户来代替tblusers。

使用User代替用户

使用级联类型。所有都位于协会的一部分。

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

@ManyToOne(fetch = FetchType.Lazy)
pravate User user;
 类似资料:
  • 我得到了这个例外 在下面的方法中,身份验证是使用ldap完成的。如果发生不正确的用户名或密码或连接异常,将捕获以下异常之一。 我的问题是这个。我将异常发送到下面的方法,并将异常转换为String并将其添加到我的实体类中。 这是我的实体类: 但是当操作发生时,我得到以下异常。 我研究了一些东西,上面说是这样的。 但我不明白的是,我在这里得到的值是空的?我知道在调试时,Entity类会将异常消息放在l

  • 由于一些奇怪的原因,hibernate生成的查询不适用于postgres,它告诉它无法找到关系/表,即使在架构中有有效的表?这个答案没有帮助。 例外情况: HQL公司 生成SQL 此查询工作正常: 基于胶片实体注释的映射: 解决方案/黑客: 评论后,问题消失了。

  • 我有一个使用spring boot和postgres的应用程序。我在尝试创建用户时遇到此错误。 当我在我的数据库上运行此查询时,我得到相同的错误: 但如果我将其更改为: 它起作用了。 如何在我的spring boot应用程序上配置它? pom中的依赖项。xml: application.properties: 我的实体: 我从表单中调用此操作: 这是我的控制器: 记录错误的验证器: UserSer

  • 我正在使用java web服务(apache axis)和JDBC连接来连接postgres数据库,以获取数据。但突然间,在大多数情况下,我都遇到了

  • 问题内容: 我有一个夹具(json),它可以在开发环境中加载,但是在服务器环境中却无法加载。错误显示为:“ 我的开发环境是Windows&Postgres 8.4。该服务器运行Debian和Postgres 8.3。在两个系统中,数据库编码均为UTF8。 好像灯具中的unicode标记在服务器上算作字符,它们导致某些字符串超过其字段的最大长度。但是,这在开发环境中不会发生。 问题答案: 与众不同的

  • 我有一个Alfresco(5.2.4)工作流,它在activiti引擎上运行。当用户提交任务并且用户任务块完成时,我收到以下错误: 到目前为止,我发现activiti自动存储在工作流中执行的“步骤”的历史记录,因此它会引发错误。 我想知道是否有一些数据库表定义,我可以寻找搜索超过255个字符总数的列。 如果我不能在用户完成任务时修改javascript代码,有没有办法增加长度? 谢啦 附注:我找到