Pregunta

Supongamos que tengo:

case class SomeModel(
  id : Pk[Long],
  description : String
)

object SomeModel extends Magic[SomeModel] {
  def ayDogAy = {
    var aydog = SomeModel(NotAssigned, "aydog")
    this.insert(aydog)
  }
}

¿Cómo recupero el ID insertado de Aydog?

Si importa, mi base de datos de respaldo es Postgres

¿Fue útil?

Solución

en el juego 2 Si tiene un AutoIncrement Long PK:

val id: Long = SQL("insert into bla bla bla").on("bleh", "blah").executeInsert().get

Otros consejos

No uso el rasgo mágico (ya que se elimina en el juego 2.0), así que no estoy seguro de si esto también funciona.En SQL puede usar Scope_Identity () para obtener la última identificación utilizada en la conexión.Para que puedas hacer un millaje como

    val id = SQL("SELECT SCOPE_IDENTITY()")().collect {
               case Row(id: Int) => id
             }.head
    new SomeModel(new Id(id), "aydog")

Solo estoy jugando con el juego en este momento.Así que esto no es nada, recomendaría usar en producción sin nuevas investigaciones.Estoy especialmente inseguro si puede haber problemas de concurrencia, cuando varios hilos utilizan el método AyDogay.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top