小编Bir*_*005的帖子

使用slick-plain SQL为play2在事务中的3个表中插入记录时出现异常

我的方案如下:

  1. 我的PG DB中有3个表(用户,安全性,密码).
  2. 当最终用户尝试将self注册到我的数据库时,代码将检查用户表中是否存在使用.
  3. 如果存在,则返回None.否则,在同一事务中将记录插入(用户,安全性,密码).

以下是我的代码:

def selectUserCountQuery1(user: User): DBIO[Int] = {
  sql"""SELECT COUNT(user_id) FROM users WHERE provider_id = ${user.providerId} AND phone_num = ${user.phoneNumber}""".as[Int].head
}


def insertUserQuery(user: User): DBIO[Int] = {
    sqlu"""INSERT INTO users VALUES (${user.userId}, ${user.deviceToken},${user.phoneNumber},${user.providerId},
        ${user.gender},${user.email},${user.createTime},${user.loginName},${user.nickName},${user.currentPlatform},${user.roles},${user.avatarUrl})"""
}

def insertPasswordQuery(passwordInfo: PasswordInfo): DBIO[Int] = {
  sqlu"""INSERT INTO password_info VALUES (${passwordInfo.userId}, ${passwordInfo.hasher},
         ${passwordInfo.passwordHash}, ${passwordInfo.salt})"""
}

def insertSecurityTokenQuery(accessToken: UserSecurityToken): DBIO[Int] = {
  sqlu"""INSERT INTO user_security_token VALUES (${accessToken.userId}, ${accessToken.platform},
         ${accessToken.token}, ${accessToken.token_time})"""
}


def registerUser (user: User, password: String): Future[Option[UserProfile]] = {
  val passwordHash …
Run Code Online (Sandbox Code Playgroud)

scala playframework slick

2
推荐指数
1
解决办法
1032
查看次数

标签 统计

playframework ×1

scala ×1

slick ×1