2012-06-28 39 views
2

对于键入的主键(及其子类anorm.NotAssigned),Anorm具有特殊类型anorm.Pk。如果数据库负责生成相关密钥,则允许分配NotAssigned值。如何使用anorm处理未分配的ID?

对外键是否有等价的概念?目前我正在使用Long。但是,如果外键还不知道,我将不得不指定null值或将其替换为Option[Long]。尽管如此,这感觉不像它的意图。

回答

0

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 

...等

+0

这听起来像一个很好的解决方案,如果你对创造'user's和'c's的单独行动。但是,我正在使用单个操作并结合重复的表单值。 – fynn

+0

对不起,我试图弄清楚如何说“我已经回答了你的问题”,而不是试图听起来像理查德:)为此提出一个单独的问题,因为它转向关于是否有一个FK等同于PK。 – opyate