我正在关注关于复合类型的官方 psql 用户指南(https://www.postgresql.org/docs/current/rowtypes.html)并尝试为https://impossibl.github.io/pgjdbc-nginventory_item
类型实现 SQLData /docs/current/user-guide/#_java_sql_sqldata。
据我了解,SQLData 实现的类型映射应附加到活动连接。在我的情况下这并不容易(我正在使用 clojure + clojure.java.jdbc + 连接池)。此外,将其添加到每个连接中感觉不正确。
有没有办法只设置一次映射,以便每个连接都使用它?
SQLData 的虚拟实现(还只读)
(deftype InventoryItem []
java.sql.SQLData
(getSQLTypeName [_]
"inventory_item")
(readSQL [_ stream _type]
{:name (.readString stream)
:supplier-id (.readInt stream)
:price (.readBigDecimal stream)})
(writeSQL [_ stream]))