Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
713 views
in Technique[技术] by (71.8m points)

Catch Unique Key Exception Scala Slick

Below is the code I use in inserting into the db however when the name of a group which is unique is entered I get a unique key violation in the logs

override def create(groups: GroupEntity): Future[GroupEntity] = db.run{groupsTableQuery returning groupsTableQuery += groups}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Recover using recoverWith. As all exceptions will be of type PSQLException, check if certain keywords exist in message of the exception to handle it.

val future = db.run { groupsTableQuery returning groupsTableQuery += groups }

future.recoverWith { 
 case ex: PSQLException =>
   val msg = ex.getMessage
   //check message for keywords for specific errors
   Future.successful(0)
 case ex => Future.failed(ex)
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...