These are chat archives for scalikejdbc/ja

29th
Apr 2016
Toshiyuki Takahashi
@tototoshi
Apr 29 2016 13:01
case class Member(id: Long, name: Option[String])
object Member extends SQLSyntaxSupport[Member]

じゃなくて

case class Member(id: Long, name: Option[String])
class MemberDao extends SQLSyntaxSupport[Member]

みたいに書きたいなー

objectだとPlayとちょっと相性悪くて。
Toshiyuki Takahashi
@tototoshi
Apr 29 2016 13:14
case class Member(id: Long, name: Option[String])
object Member extends SQLSyntaxSupport[Member]

class MemberDao (connectionPool: ConnectionPool) {
  implicit def session: DBSession = DBSession(conn = connectionPool.borrow())
  def find(id: Long): Option[Member] = Member.find(id)    
}
みたいにすることにした。
Kazuhiro Sera
@seratch
Apr 29 2016 13:23
この場合 object Member extends SQLSyntaxSupport[Member]object MemberQueryProvider extends SQLSyntaxSupport[Member] みたいにして MemberDao で SQL interpolation とか QueryDSL 使って処理書く方がすっきりしそうな感じしますね。
Toshiyuki Takahashi
@tototoshi
Apr 29 2016 13:24
なるほど、あのDSLってobject Memberの中じゃなくても書けるんですね。(そんなに使ったことない)
Kazuhiro Sera
@seratch
Apr 29 2016 13:26
tableName とか自前で書くことにすれば companion object である必要は特にないです。
Toshiyuki Takahashi
@tototoshi
Apr 29 2016 13:27
りょうかいです。ありがとうございます。
Manabu Nakamura
@gakuzzzz
Apr 29 2016 18:04
@tototoshi こんな感じで完全に Entityクラスから SQLSyntaxSupport 切り離すこともできますよ。 https://github.com/gakuzzzz/play-sample/blob/9b1ba086c7bed2af3dfc95bb9b9c1d9aa8085134/app/models/aggregates/account/AccountDao.scala