【问题标题】:Anorm Populate Child List异常填充子列表
【发布时间】:2013-04-14 18:10:11
【问题描述】:

我是 Scala 和 Anorm 的新手,但我正在尽力尝试一下。我现在正试图填充对象的子列表。

例如,我有一个联系人有多个电话号码。我将如何从数据库中填写我的电话号码?

斯卡拉

case class Contact(id: long, phoneNumbers: List[PhoneNumber])
case class PhoneNumber(area: String, rest: String)

表结构

Contact
  id bigint

PhoneNumber
 area varchar(3)
 rest varchar(7)
 contact_id bigint

【问题讨论】:

    标签: scala anorm


    【解决方案1】:

    你可以试试这样的:

    val contacts: Iterable[Contact] = SQL(
      """
        SELECT c.id, p.area, p.rest
        FROM PhoneNumber p
        JOIN Contact c on p.contact_id = c.id;
      """
    ).as(long("id") ~ str("area") ~ str("rest") map(flatten) *
    ).groupBy(_._1).map {
      case (k,l) => Contact(k, l.map {
        d => PhoneNumber(d._2, d._3)
      })
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2011-02-12
      • 2017-07-26
      • 2023-03-11
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多