You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman POST请求500错误排查及数据库字段类型适配咨询

解决PostgreSQL bytea字段与Hibernate实体类型不匹配问题

根据错误提示column "image" is of type bytea but expression is of type smallint,核心问题是实体类字段类型与数据库字段类型不兼容:

  • 数据库中image字段为bytea类型(PostgreSQL用于存储二进制字节流的类型)
  • 当前实体类里声明的Byte image;是单个字节类型,Hibernate会将其映射为SQL的smallint类型,与bytea类型无法匹配

解决方案

将实体类中的Byte类型改为byte[](字节数组),这是Hibernate映射PostgreSQL bytea字段的标准适配类型:

修改后的Entity类代码:

@Data
@NoArgsConstructor
@Table(name = "student_personal_information")
@Entity
public class PersonalEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "id", nullable = false)
    private Long id;

    @Column(name = "lastname", columnDefinition = "CLOB")
    private String lastname;

    @Column(name = "firstname", columnDefinition = "CLOB")
    private String firstname;

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

    @Column(name = "age")
    private Integer age;

    // 修改为byte[]类型,匹配数据库bytea字段
    @Column(name = "image")
    private byte[] image;

}

补充说明

如果需要更复杂的二进制数据操作,也可以使用javax.persistence.Blob类型,但byte[]是更轻量、通用的选择,适合存储图片这类二进制数据。

内容的提问来源于stack exchange,提问作者Practice Tech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:01:21