如何使用anorm处理未分配的ID?
问题描述:
对于键入的主键(及其子类anorm.NotAssigned
),Anorm具有特殊类型anorm.Pk
。如果数据库负责生成相关密钥,则允许分配NotAssigned
值。如何使用anorm处理未分配的ID?
对外键是否有等价的概念?目前我正在使用Long
。但是,如果外键还不知道,我将不得不指定null
值或将其替换为Option[Long]
。尽管如此,这感觉不像它的意图。
答
Anorm不提供围绕关系的功能。
将您的FK带出您的模型,但接受FK作为您的CRUD的参数,例如,创建“做作”属于用户:
def create(c: Contrived, userId: Long)
DB.withConnection { implicit connection =>
val id = SQL("""
insert into c
(first, second, login_id)
values
({first}, {second}, {login_id})
""").on(
'first -> c.first,
'second -> c.second,
'login_id -> userId
...等
这听起来像一个很好的解决方案,如果你对创造'user's和'c's的单独行动。但是,我正在使用单个操作并结合重复的表单值。 – fynn
对不起,我试图弄清楚如何说“我已经回答了你的问题”,而不是试图听起来像理查德:)为此提出一个单独的问题,因为它转向关于是否有一个FK等同于PK。 – opyate