簡體   English   中英

錯誤:找不到參數p的隱式值:scala.slick.jdbc.SetParameter [java.util.UUID]

[英]Error:could not find implicit value for parameter p: scala.slick.jdbc.SetParameter[java.util.UUID]

使用scala在postgres數據庫表中插入一行會產生以下錯誤。

could not find implicit value for parameter p: scala.slick.jdbc.SetParameter[java.util.UUID]

SignUpProcess.scala

case class SignUpProcess(subscriber_uuid:UUID,firstname:String,lastname:String,jobtitle:String,phone:String,email:String,password:String,company_name:String,no_of_employees:Int,my_schema_name:String,my_date:Date,my_time:Time) 

object SignUpProcess{

    // _ip -> input parameter
    def signUp(firstname_ip: String, lastname_ip: String, jobtitle_ip: String, phone_ip: String, email_ip: String, password_ip: String, companyname_ip: String, employeescount_ip: Int) : String = {

        Database.forURL("jdbc:postgresql://localhost:5432/my_db", "postgres", "mypassword",null, driver="org.postgresql.Driver") withSession{

            def insert(c: SignUpProcess) = (Q.u + "insert into my_schema.my_table(subscriber_uuid,firstname,lastname,jobtitle,phone,email,password,company_name,no_of_employees,my_schema_name,my_date,my_time) values( '"+? c.subscriber_uuid+"', "+? c.firstname+","+? c.lastname+","+? c.jobtitle+","+? c.phone+","+? c.email+","+? c.password+","+? c.company_name+","+? c.no_of_employees+","+? c.my_schema_name+","+? c.my_date+","+? c.my_time+")").execute

            Seq(
              SignUpProcess(UUID.randomUUID(), firstname_ip, lastname_ip, jobtitle_ip, phone_ip, email_ip, password_ip, companyname_ip, 10, "mymail_gmail_com", new Date(2013,8,8), new Time(16,30,0))
            ).foreach(insert)
            "Success"
        }
    }
}

Slick不知道如何將UUID實例設置為查詢。 嘗試將UUID作為c.subscriber_uuid.toString添加到查詢中。

您還缺少withSessionimplicit session 編譯后的代碼修改示例如下:

import java.util.UUID
import java.sql.Date
import java.sql.Time
import scala.slick.session.Database
import scala.slick.jdbc.{StaticQuery => Q}

case class SignUpProcess(subscriber_uuid:UUID,firstname:String,lastname:String,jobtitle:String,phone:String,email:String,password:String,company_name:String,no_of_employees:Int,my_schema_name:String,my_date:Date,my_time:Time) 

object SignUpProcess{

    // _ip -> input parameter
    def signUp(firstname_ip: String, lastname_ip: String, jobtitle_ip: String, phone_ip: String, email_ip: String, password_ip: String, companyname_ip: String, employeescount_ip: Int) : String = {

        Database.forURL("jdbc:postgresql://localhost:5432/my_db", "postgres", "mypassword",null, driver="org.postgresql.Driver") withSession{ implicit session =>

            def insert(c: SignUpProcess) = (Q.u + "insert into my_schema.my_table(subscriber_uuid,firstname,lastname,jobtitle,phone,email,password,company_name,no_of_employees,my_schema_name,my_date,my_time) values( '"+? c.subscriber_uuid.toString+"', "+? c.firstname+","+? c.lastname+","+? c.jobtitle+","+? c.phone+","+? c.email+","+? c.password+","+? c.company_name+","+? c.no_of_employees+","+? c.my_schema_name+","+? c.my_date+","+? c.my_time+")").execute

            Seq(
              SignUpProcess(UUID.randomUUID(), firstname_ip, lastname_ip, jobtitle_ip, phone_ip, email_ip, password_ip, companyname_ip, 10, "mymail_gmail_com", new Date(2013,8,8), new Time(16,30,0))
            ).foreach(insert)
            "Success"
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM