2017-09-08 2 views
1

Bon Matin,play framework scala requête d'insertion lisse sans autoincrement

J'ai l'extrait de code suivant:

def createResponsibleProcessTemplates(processTemplateId: Int, username: String): Future[Int] = db.run { 
    println("Create Responsible TemplateId: " + processTemplateId + " UserName: " + username) 
    (responsibleProcessTemplates 
     returning responsibleProcessTemplates.map(_.processTemplateId) 
    ) += ResponsibleProcessTemplateModel(processTemplateId, username) 
    } 

Mon modèle est:

package models 

import play.api.libs.json.Json 

case class ResponsibleProcessTemplateModel(
            processTemplateId: Int, 
            username: String) 

object ResponsibleProcessTemplateModel { 
    implicit val responsibleProcessTemplateFormat = Json.format[ResponsibleProcessTemplateModel] 
} 

Et le trait ressemble à ceci :

trait ResponsibleProcessTemplateComponent { 
    self: HasDatabaseConfigProvider[JdbcProfile] => 

    import profile.api._ 

    class ResponsibleProcessTemplate(tag: Tag) extends Table[ResponsibleProcessTemplateModel](tag, "Responsible_ProcessTemplates") { 
    def processTemplateId: Rep[Int] = column[Int]("processTemplateId") 

    def username: Rep[String] = column[String]("username") 

    def * : ProvenShape[ResponsibleProcessTemplateModel] = (processTemplateId, username) <> ((ResponsibleProcessTemplateModel.apply _).tupled, ResponsibleProcessTemplateModel.unapply) 
    } 

    val responsibleProcessTemplates: TableQuery[ResponsibleProcessTemplate] = TableQuery[ResponsibleProcessTemplate] 
} 

Il doit insérer des données dans une table de base de données sans générer d'identifiant d'auto-enregistrement.

Je ne reçois pas d'erreurs, mais les données ne sont pas stockées dans la base de données.

Merci pour votre aide.

Répondre

0

J'ai trouvé la solution!

def createResponsibleProcessTemplates(processTemplateId: Int, username: String): Future[Int] = { 
    db.run(responsibleProcessTemplates.map(x => (x.processTemplateId, x.username)) += (processTemplateId, username)) 
}