scalikejdbcのQueryDSLでカラムをバッククォーテーションで囲む
表題のまんま
scalikejdbcGenで自動生成したモデルのcreate, saveメソッドがコケる
ユニットテストが通らなくて、なんでやねんと思ってたらsyntax errorになってて、よくみたら対象テーブルのカラム名にMySQLの予約語が使われてた。
バッククォーテーションで囲んであげたら問題なくなるやつですね。
implicit classを使って拡張した
scalikejdbcに何かオプションがあるかと思ったけど、なさそうだったので、自分でimplicit classを使ってQueryDSLを拡張した。
scalikejdbc back-quoted syntax
やってることはシンプルで、メソッドの引数をunzipして、カラム名のSeqを取り出し、バッククォーテーションで囲んだSeqにしたのち、再度パラメータのSeqとzipして(カラム名、パラメータ)のTupleのSeqに戻して、オリジナルのメソッドに引き渡してるだけ。
ユニットテストは通ったので、多分大丈夫そう。