CayenneでLIKE演算子を使う

例えばSから始まるnameカラムのデータを検索したい時、以下のようなSQL文を作成します。

SECELT * from sample_table where name like 'S%';

このwhere以下表すExpressionをO/Rマッピング・フレームワークであるcayenneで作りたい時は、以下のようにすればできます。

Expression exp1 = Expression.fromString("name like 'S%'");

また、Expressionオブジェクトを生成するためのヘルパー・クラスであるExpressionFactoryを用いると以下のように簡潔に記述できます。

Expression exp2 = ExpressionFactory.likeExp("name", "S%");

<参考にしたサイト>

  • http://www.atmarkit.co.jp/fjava/products/cayenne/cayenne_3.html
  • https://hacknote.jp/archives/23052/
  • https://hacknote.jp/archives/15516/

<備考>

Cayenneはカラムの追加などで複雑な処理が必要だった印象があり苦手意識がありましたが、

数少ない日本語で説明されたサイトを読んでいくうちに理解が深まった気がします。