我有一份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>
@Lob
注释;请参见这个相关问题)。你是如何得到那个base64表示的?你确定那不是由视图相关服务输出(并可能转换)的东西吗?(请尝试调试@Entity
,看看返回到image
属性的内容以及在保存之前设置给该属性的内容)。 - pozs