 
 (extend-protocol j/IResultSetReadColumn
   java.sql.Date
-  (result-set-read-column [v _ _] (LocalDate. v nlZone))
+  (result-set-read-column [v _ _] (LocalDate. ^java.sql.Date v ^DateTimeZone nlZone))
   java.sql.Timestamp
-  (result-set-read-column [v _ _] (LocalDateTime. v nlZone))
+  (result-set-read-column [v _ _] (LocalDateTime. ^java.sql.Timestamp v  ^DateTimeZone nlZone))
   java.sql.Array
   (result-set-read-column [v _ _]
     (into [] (.getArray v))))

(defn from-json [str]
  (if (clojure.string/blank? str)
    nil
    (let [in (ByteArrayInputStream. (.getBytes str))
          reader (transit/reader in :json
                                 {:handlers @transit-read-handlers})]
      (transit/read reader))))

  org.joda.time.LocalDate
  (sql-value [v] (tc/to-sql-date v))
  com.vividsolutions.jts.geom.Geometry
  (sql-value [v] (str "SRID=" (.getSRID v) ";" (.write ^WKTWriter wkt-writer v)))
  clojure.lang.Keyword
  (sql-value [v] (name v))
  clojure.lang.IPersistentMap
