【问题标题】:How to handle unassigned IDs with anorm?如何使用异常处理未分配的 ID?
【发布时间】:2012-06-28 09:21:17
【问题描述】:

Anorm 具有特殊类型 anorm.Pk 用于键入的主键(及其子类 anorm.NotAssigned)。如果数据库负责生成相关键,这允许分配一个NotAssigned 值。

外键是否有等效的概念?我目前正在使用Long 类型。但是,如果还不知道外键,我将不得不分配一个null 值或用Option[Long] 替换类型。不过,这感觉不像它应该做的那样。

【问题讨论】:

    标签: scala playframework anorm


    【解决方案1】:

    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
    

    ...等

    【讨论】:

    • 如果您对创建users 和cs 有单独的操作,这听起来是一个不错的解决方案。但我将单个操作与重复的表单值结合使用。
    • 对不起,我想弄清楚如何说“我已经回答了你的问题”,而不是试图听起来像理查德:) 为此提出一个单独的问题,因为它偏离了这个问题关于是否有等同于 PK 的 FK。
    猜你喜欢
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多