如果你有 lob 类型
@Column(name = "xml")
@Lob
private String xml;
然后在 PostgreSQL 中你会得到文本类型的列
\d tablename
Column | Type | Modifiers
----------------+-----------------------------+-----------
xml | text |
当您在此列中插入一些文本时,将创建大对象并且列包含指向此对象的链接
# select * from tablename
xml
+------------
242781
(1 row)
在这篇文章中,建议使用 Vacuumlo 实用程序来清理与已删除行相对应的大型对象。但是根据这个文档
然后它扫描数据库中所有类型为 oid 或 lo 的列,并从临时表中删除匹配的条目。(注意:只考虑具有这些名称的类型;特别是,不考虑它们之上的域。)
因此,如果您在包含文本列的数据库上运行 Vacuumlo,则所有大对象都将被删除,因为它们是从文本列而不是 oid 引用的。所以质疑我如何在休眠中映射 LOB 对象以允许清理未使用的空间
我检查了 Postgresql 9.3.4 和休眠 4.3.5