2017-02-16 20 views
6

Używam slick z Postgresql 9.6.1, Plya! 2.5 i play-slick 2.0.2.Slick 3: insertOrUpdate nie działa

(Używam również zręczny-PG 0.14.3 ale nie sądzę, że zmienia niczego tutaj).

Używam insertOrUpdate w bardzo prosty sposób do przodu, ale wciąż uzyskać niepowtarzalny wyjątek.

Mam bardzo prosty test z użyciem insertOrUpdate: jeśli uruchomię go kilka razy zawsze uzyskać sql wyjątek:

ERROR: duplicate key value violates unique constraint "ga_client_id_pkey" 
    Detail: Key (client_id)=(1885746393.1464005051) already exists 

Jednak moja tabela jest zdefiniowana z client_id jako klucz podstawowy:

def clientId = column[String]("client_id", O.PrimaryKey) 

i zdefiniowane w SQL następująco:

client_id TEXT NOT NULL UNIQUE PRIMARY KEY 

Badany po prostu funkcja robi:

db.run(gaClientIds.insertOrUpdate(gaClientId)) 

a kontroler po prostu nazywa to metody i nie robi nic innego.

Dziwne jest to, że kilkakrotne uruchomienie samych metod nie prowadzi do błędu, ale kontroler działa tylko wtedy, gdy wywołuje metodę.

Czy insertOrUpdate funkcja slick nie jest jeszcze pewna czy coś mi brakuje?

+0

sam problem na mojej stronie z slick3. 2.1. @Simon znalazłeś rozwiązanie? – Stoecki

+0

Niestety jedynym rozwiązaniem, które znalazłem jest napisanie połączenia z bazą danych w zwykłym sql ... – Simon

+0

To było również moje rozwiązanie – Stoecki

Odpowiedz