如何使用hibernate将图像存储到postgres数据库中

Posted

技术标签:

【中文标题】如何使用hibernate将图像存储到postgres数据库中【英文标题】:How to store image into postgres database using hibernate 【发布时间】:2012-05-27 03:21:50 【问题描述】:

我想使用 hibernate 和 Java 将图像存储到数据库中。我正在使用 postgres 数据库

我尝试了bytea 数据类型来存储图像和byte[] 数据类型在休眠 pojo 中。

我使用了以下代码,

CREATE TABLE photo
(
  "photo_name" bytea
)
WITH (OIDS=FALSE);
ALTER TABLE photo OWNER TO postgres;

休眠Pojo

public class PhotoEntity 

byte[] name;

public byte[] getName() 
    return name;


public void setName(byte[] name) 
    this.name = name;

但它在映射时会出错。 请给我任何参考来做到这一点。

【问题讨论】:

向我们展示您的真实代码,并告诉我们准确且完整的错误消息,其中可能包含有意义的信息,而不仅仅是“您做错了什么”标志。 您好,先生,映射时发生错误,因为 bytea 未与 byte[] 或 byte 映射。所以混淆了我在休眠 pojo 中使用的数据类型而不是 byte[] 或 byte。跨度> 您必须提供您使用的准确映射代码以及您遇到的错误,以便任何人帮助您。 你发现了吗? 【参考方案1】:

如果您通过 JPA2 使用 Hibernate,您可能需要 @Lob 注释,但我不确定这是用于 oid 还是 bytea 字段。见:

proper hibernate annotation for byte[]

还有一个 Hibernate dev blog post 信息量很大。

如果您通过 XML 映射或它自己的注释方言使用 Hibernate,请显示您的确切代码和错误消息。

另见答案here。

【讨论】:

我怀疑当@Lob 映射到OID 时,Hibernate 不会在通过DELETEUPDATE 等失去对 LOB 的引用之前和之后都不会 lo_unlink LOB。

以上是关于如何使用hibernate将图像存储到postgres数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何将存储在 Postgres 中的图像的图像 URL 插入 Spring Boot 模型

从 Postgres 返回图像 url 到前端 - Node / React

如何使用 Spring Boot JPA 在 Postgres 中存储几何点?

如何将 hive derby 元存储迁移到 postgres 元存储

如何使用节点 api 将图像存储在共享主机提供商上

Hibernate 无法使用 Postgres 在 jpql 中定义空参数