ITの隊長のブログ

ITの隊長のブログです。Pythonを使って仕事しています。最近は機械学習をさわりはじめたお(^ω^ = ^ω^)

【PlayFramework2.4】検索の条件の否定

スポンサードリンク

「指定したidリストの中に入っているid以外のレコードを取得する」という要件がありました。

? そういえば否定ってやったことないな。と思い、色々探してやっとこさできたのでメモ。

import com.avaje.ebean.Expr;

// ... 省略

List<Integer> notSomethingModelIdList = new ArrayList<Integer>();
notSomethingModelIdList.add(1);
notSomethingModelIdList.add(2);
notSomethingModelIdList.add(3);

// 1~3のid以外のレコードを検索してくれる
List<SomethingModelClass> somethingModelList = SomethingModelClass.finder // finderはプロパティ => new Finder<>(Long.class, SomethingModelClass.class);
      .where()
      .not(Expr.in("id", notSomethingModelIdList))
      .findList();

Expr.in()で、idを検索するSQLを発行しているんだと思う、そのあとにnot()で囲んであげると、そのSQLが否定文になります。

これでよし。

他にもlt()とかgt()とかの不等号あたりの条件を発行するメソッドもあるので、下記を参照。

EBeanによるModelの作成[Java編](5/5):Herokuで始める 初心者のためのPlay Framework入門

よかったのか悪かったのか、これまでeq()や、ne()だけでプログラミングしていました。。。