play framework evolutions scala playframework-2.0 slick play-slick

scala - framework - Devolviendo ID AutoInc después de Insertar en Slick 2.0



play framework evolutions (2)

Si tiene campos con valores predeterminados, puede intentar esto

addresses.map(c => (c.city, c.stateName, c.street1)) returning addresses.map(_.id) += (city, stateName, street1)

He buscado en los confines de la tierra la respuesta a esta pregunta. No hay mucha información sobre Slick 2.0. A continuación se encuentra mi código para mi modelo de Direcciones, ¿cómo haría que el método create devuelva el ID después de realizar el inserto?

package models import play.api.Play.current import play.api.db.slick.Config.driver.simple._ import play.api.db.slick.DB object Addresses{ val DB_URL:String = "jdbc:h2:mem:fls-play" val DB_driver:String = "org.h2.Driver" class Addresses(tag: Tag) extends Table[(String, String, String, String, String)](tag, "ADDRESSES"){ def id = column[Int]("ID", O.PrimaryKey, O.AutoInc) def city = column[String]("CITY") def stateName = column[String]("STATE_NAME") def street1 = column[String]("STREET1") def street2 = column[String]("STREET2") def zip = column[String]("ZIP") def * = (city, stateName, street1, street2, zip) } val addresses = TableQuery[Addresses] def create(city:String, stateName:String, street1:String, street2:String, zip:String) { DB.withSession{ implicit session => addresses += (city, stateName, street1, street2, zip) } } }

¡Gracias!


Tratar

(addresses returning addresses.map(_.id)) += (city, stateName, street1, street2, zip)

No lo he probado, pero se muestra here