「指定した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()
だけでプログラミングしていました。。。