2017-10-04 119 views
0

我是斯卡拉和斯利克新手。我有一个正确的方法如何检查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