一尘不染

如何使用JPA从PostgreSQL读取bytea图像数据?

hibernate

我有PostgreSQL数据库,并且有数据类型为“ bytea”的列“
image”。我无法修改列或数据库配置。JPA注释的POJO包含Followign映射

@Column(name="image")
private byte[] image;

返回的数据采用以下格式(这只是示例)

WF5ClN6RlpLZ0hJTUdNQ1FJWmkwcFVGSUdNQ0lDWUE5TUEvanRFeElwK2x0M2tBQUFBQVNVVk9SSzVDWUlJPQo=

当我将此数据写入文件(.jpeg)时,照片查看器会显示“此文件已损坏”。我也了解实际的图像字节数据看起来与上面的示例有所不同。我读过一些博客,其中提到PostgreSQL将十六进制转换应用于bytea数据。不论是否使用JPA,如何将其还原为原始数据?

数据库-PostgresSQL版本9.5.1

司机

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.4-1205-jdbc41</version>
</dependency>

阅读 554

收藏
2020-06-20

共1个答案

一尘不染

返回的数据看起来好像是base64编码的。在写入文件之前,您必须将其解码回二进制数据。

2020-06-20