2017-10-04 21 views
0

저는 Scala와 Slick을 처음 사용합니다. DB (postgresql)에 항목의 존재를 확인하는 올바른 방법에 문제가 있습니다. 그래서, 만약 insert if exist와 update method를 구현할 필요가 있습니다. 일부 업데이트를했는데 적절한 방법으로 작동하지 않으며 오류가 발생합니다.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' (일명 [upserting] (http://slick.lightbend.com/doc/3.1.0/queries.html#upserting))를 노출합니다. –

답변

0

insertOrUpdate를 사용하거나 필요에 따라 직접 작성할 수 있습니다. 당신은 이것에 대해 읽을 수 있습니다 underscore blog post