Fork me on GitHub
#clojure-italy
<
2017-07-16
>
manuel09:07:22

buona domenica a tutti. Ho un problemino che mi sta facendo diventare pazzo, specialmente perché non trovo niente di utile sul web per risolverlo. Ho un'applicazione molto semplice: Clojure+PostgreSQL. Nessuna libreria extra, solo clojure.jdbc. Select, insert e update funzionano senza intoppi, ma qualsiasi cosa provi a fare con Delete ho sempre questa eccezione:

Exception: BatchUpdateException Batch entry 0 DELETE FROM categories WHERE id = 6 was aborted.  Call getNextException to see the cause.
E succede sia se faccio così:
(jdbc/with-db-transaction [conn {:datasource datasource}]
                              (jdbc/delete! conn :categories ["id = ? " 6]))
Sia se faccio così:
(jdbc/with-db-connection [conn {:datasource datasource}]
                              (jdbc/execute! conn ["DELETE FROM categories WHERE id = ?" 6]))

manuel10:07:06

Se possibile vorrei fare a meno di librerie come HugSQL.

manuel10:07:00

datasource è un componente definito con mount, il cui :start fa uso hikari-cpper il connection pooling.

manuel10:07:46

Altre info: da project.clj

[org.clojure/clojure "1.9.0-alpha17"]
[org.clojure/java.jdbc "0.7.0-beta5"]
[postgresql "9.3-1102.jdbc41"]
PostgreSQL version:
> psql -V
psql (PostgreSQL) 9.6.3

manuel10:07:28

lasciate stare, risolto. Ho cambiato [postgresql "9.3-1102.jdbc41"] in [org.postgresql/postgresql "9.4.1212"], l'eccezione ora è più chiara (una foreign key di mezzo). Ora delete va ovunque. Scusate il monologo domenicale. 😄

reborg15:07:18

Uh oh @bronsa nice :)