如何使用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 不会在通过DELETE
、UPDATE
等失去对 LOB 的引用之前和之后都不会 lo_unlink
LOB。
以上是关于如何使用hibernate将图像存储到postgres数据库中的主要内容,如果未能解决你的问题,请参考以下文章
如何将存储在 Postgres 中的图像的图像 URL 插入 Spring Boot 模型
从 Postgres 返回图像 url 到前端 - Node / React
如何使用 Spring Boot JPA 在 Postgres 中存储几何点?