我有 PostgreSQL 数据库,并且有一个数据类型为“bytea”的列“image”。我无法修改列或数据库配置。 JPA 注释的 POJO 包含以下映射
@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>
原文由 Bhushan 发布,翻译遵循 CC BY-SA 4.0 许可协议
返回的数据看起来好像是 base64 编码的。在写入文件之前,您必须将其解码回二进制数据。
有关解码的更多信息,请查看 此处