DevDevデブ!!

プログラミングのこととか書きます。多分。。。

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に戻して、オリジナルのメソッドに引き渡してるだけ。

ユニットテストは通ったので、多分大丈夫そう。