2017-10-04 9 views
0

私はScalaとSlickを初めて使用しています。私は、DB(postgresql)の項目の存在をチェックする適切な方法に問題があります。だから、もし私が存在し、更新メソッドを実装する必要があります。私はいくつかの更新を行ったが、それは適切な方法では動作せず、エラーが発生する。postgresql scalaの要素の存在を確認するにはどうすればよいですか?

ERROR: duplicate key value violates unique constraint 
"IDX_COMPETENCE_SID_UID"_ Detail: Key ("SKILL_ID", "USER_ID")=(2, 
20198) already exists. [Sanitized] 
def update(skillRow: SkillWithVisibility): DBIO[Int] = { 
//TODO skill existence check? 
selectByIdForUpdateQ(skillRow.id, skillRow.companyId) update skillRow } 

スキルが存在することを確認し、存在する場合、それを更新するには、この方法を修正するための最良の方法は何ですか?

+0

Slickは 'insertOrUpdate'(aka [upserting](http://slick.lightbend.com/doc/3.1.0/queries.html#upserting))を公開しています。 –

答えて

0

insertOrUpdateを使用するか、必要に応じて独自に書き込むことができます。あなたはこれについて読むことができますunderscore blog post

関連する問題