Skinny-ORMでコンストラクタ引数とテーブルのカラム名が一致しない場合の定義の仕方を教えてください。
以下の様なテーブルとクラスがあるとします。
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.
というエラーがでます。