外部SQLファイルの使い方

Mirageでは2waySQLは外部SQLファイルとして作成する必要がありますが、mirage-scalaでは以下のように複数行文字列を使ってソースコード中に直接2waySQLを記述することができるようにしています。

val resultList = sqlManager.getResultList(classOf[Book], 
  Sql("""
    SELECT BOOK_ID, BOOK_NAME, AUTHOR, PRICE
    FROM BOOK
    /*IF author != null*/
      WHERE AUTHOR=/*author*/'Naoki Takezoe'
    /*END*/
  """), new BookParam("Naoki Takezoe"))

ただ、巨大なSQLの場合はやはり外部SQLファイルにしたいという場合もあると思います。そんな場合は以下のようにして外部SQLファイルを使用することもできます。

val resultList = sqlManager.getResultList(classOf[Book], 
  SqlFile("META-INF/selectBookByAuthor.sql"), 
  new BookParam("Naoki Takezoe"))

SqlやSqlFileはSqlProviderというトレイトを継承しており、getSql()という2waySQLを文字列で返却するメソッドを実装しています。このSqlProviderトレイトを継承したクラスを作成することで2waySQLの入力方法を自由に追加することができます。