我找不到用Clojure插入Postgres数组类型的方法。. p; t3 D7 N" E) H
(sql/insert! db :things {:animals ["cow" "pig"]})2 f6 C, K) ]) o% \7 Y. W3 e5 V
没按我预期的那样工作。错误信息: M* `9 r9 m" n& E1 QPSQLException Can't infer the SQL type to use for an instance of clojure.lang.PersistentVector. Use setObject() with an explicit Types value to specify the type to use. org.postgresql.jdbc2.AbstractJdbc2Statement.setObject (AbstractJdbc2Statement.java:1936)& M; a! O& v, q' d# O! C
即使是我能找到的对SQL的最直接访问也不起作用:9 W" I. g; ]" w+ t
(sql/execute! db "INSERT INTO things (animals) VALUES ('{\"cow\", \"pig\"}')")+ d& _$ j; K/ n1 q2 h
真的不知道这是怎么回事: 4 F# y5 [! v1 g0 SClassCastException java.lang.Character cannot be cast to java.lang.String clojure.java.jdbc/prepare-statement (jdbc.clj:419) c( P: l2 C% d; S
当然一定有可能吗?如果不是通过辅助函数,则通过某种方式执行原始SQL。9 n7 v* G( q; ~/ a& h
( f- N$ C: Z' {" G* k v 解决方案: 0 |1 J0 i# c. w* N, F ) |' @' c" M' k/ F( |/ C- }& H* F/ ]$ i; x