以下の様なテーブルとクラスがあるとします。

sql

```

    create table `sample`.`member` (id serial, name varchar(64));
    
```

class

```

    case class Member(id: Long, hoge: String)
    
```

Memberテーブルのnameカラムを、Memberクラスのhogeにマッピングしたいと思っているのですが方法はありますか？

試した実装は以下です。

```

    package domain.models
    
    import scalikejdbc.WrappedResultSet
    import scalikejdbc.ResultName
    import skinny.orm.SkinnyMapper
    
    
    case class Member(id: Long, hoge: String)
    
    object Member extends SkinnyMapper[Member] {
      override lazy val defaultAlias = createAlias("m")
      override def extract(rs: WrappedResultSet, n: ResultName[Member]): Member = {
        new Member(
          id = rs.get(n.id),
          hoge = rs.get(n.name)
        )
      }
    }
    
```

この様な実装をし、以下を実行しました。

```

    Member.findById(1)
    
```

すると、

```

    domain.models.Member#name not found. Expected fields are #id, #hoge.
    
```

というエラーがでます。
CC BY-SA 3.0
2016-02-29T10:08:10.327
22661
2016-02-29T10:24:31.573
14387
question
scala playframework scalikejdbc
Skinny-ORMでコンストラクタ引数とテーブルのカラム名が一致しない場合の定義の仕方を教えてください。
DBのカラム名とモデルのプロパティ名が違う時はこの変数をオーバーライドしてあげると変換できます。

```

    override val nameConverters = Map("hoge" -> "name")
    
```

Map("モデルのカラム名" -> "DBのカラム名")

```

    package domain.models
    
    import scalikejdbc.WrappedResultSet
    import scalikejdbc.ResultName
    import skinny.orm.SkinnyMapper
    
    
    case class Member(id: Long, hoge: Option[String])
    
    object Member extends SkinnyMapper[Member] {
      override lazy val defaultAlias = createAlias("m")
      override val nameConverters = Map("hoge" -> "name")
      override def extract(rs: WrappedResultSet, n: ResultName[Member]): Member = {
        new Member(
          id = rs.get(n.id),
          hoge = Some(rs.get(n.hoge))
        )
      }
    }
    
```
CC BY-SA 3.0
2016-02-29T10:24:31.573
22664
2016-02-29T10:24:31.573
14387
22661
answer