Ошибка в cronjob java.sql.SQLException: индекс параметра вне диапазона (1> число параметров, которое является 0) - PullRequest
0 голосов
/ 30 августа 2018

Здравствуйте, это ошибка, которую я получаю, и не могу определить, что не так с моим оператором SQL. Похоже, лишняя пара глаз не может повредить

UPDATE sales SET state_name =?, sales_id =null, sales_timer =null where entity_id =?

вот функция, которая содержит это утверждение

(defn release
      [m]
      (db/execute!
        (core/db)
        (str "UPDATE sales SET state_name =?, sales_id =null, sales_timer =null where entity_id =?")
        [(name (m :current-state))
         (m :entity-id)]))

и вот ошибка, мы получаем ошибку от

(defn get-unfinished-sales
    []
      (db/query
        (score/db)
        (str "select * from sales where state_name = 'in-progress'")))


 (defn unlock-sales
       [usales]
       (doall (map (fn [sale]
                       (->
                         (score/put-batch
                           {:user     core/system-user
                            :messages [{:entity-id (sale :entity-id)
                                        :message-type "release"
                                        :message {}}]
                            }
                           :sales)
                         (core/log-result-if-failure))) usales)))


(defn
  run
  [& args]
  (->>
    (get-unfinished-sales)
    (filter (fn [row] (not (nil? (row :sales-timer)))))
    (filter (fn [row] (> (t/in-hours (t/interval (row :sales-timer) (t/now))) 1)))
    (unlock-sales)))

1 Ответ

0 голосов
/ 31 августа 2018

Ваш вызов db/execute! должен поместить строку SQL в качестве первого элемента в векторе с параметрами:

(defn release
      [m]
      (db/execute!
        (core/db)
        ["UPDATE sales SET state_name =?, sales_id =null, sales_timer =null where entity_id =?"
         (name (m :current-state))
         (m :entity-id)]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...