[英]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.