簡體   English   中英

Scala anorm檢索插入的ID

[英]Scala anorm retrieve inserted id

我有一個帶有id字段的autoid的表。 在用anorm插入一行之后,我想檢索生成的id。 任何的想法?

 SQL(
    """
      insert into accom (id,places,lat,lon,permaname,country,defaultLanguage) values (
         {places}, {lat}, {lon}, {permaname}, {country}, {defaultLanguage}
      )
    """).on(
      'id -> id,
      'places -> places,
      'lat -> lat,
      'lon -> lon,
      'permaname -> permaname,
      'country -> country,
      'defaultLanguage -> defaultLanguage).executeUpdate()
}

在最新版本中,您需要一個標量:

   val newId = SQL(
      """
      insert into accom (places,lat,lon,permaname,country,defaultLanguage) 
      values ({places}, {lat}, {lon}, {permaname}, {country}, {defaultLanguage})
      """).on(
        'places -> places,
        'lat -> lat,
        'lon -> lon,
        'permaname -> permaname,
        'country -> country,
        'defaultLanguage -> defaultLanguage).executeInsert(scalar[Long].single)  

使用executeInsert而不是executeUpdate ,返回值是id。

使用executeInsert方法而不是executeUpdate ; 它返回一個Option[T] ,其中T是主鍵的類型。

您可能想看一看如何在Anorm中保存新對象如何檢索主鍵 ,它還向您展示了如何在不指定ID的情況下編制 INSERT語句(您希望生成該ID)。

暫無
暫無

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

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