ebean.Model.FinderでORを使う
Ebeanというか、Finderを使ってさっくり目的のデータを取得したい場合のメモ。
Play Framework 2.2.1 (Java)
MySQL 5.6.x
適当なebean.Model(仮にUser.java)があったとして、
・User.java
package models;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import javax.persistence.Version;import play.data.validation.Constraints;import play.db.ebean.Model;import com.avaje.ebean.annotation.CreatedTimestamp;@Entity@Table(name="User")public class User extends Model {@Idpublic String userId;@Constraints.Requiredpublic String userName;public String userAddress;@CreatedTimestamppublic Date created;@Versionpublic Date updated;/* getter setter 省略 */public static Finder<String,User> find = new Finder<String,User>(String.class, User.class);}
Userを対象として簡単に目的のデータを取得する場合、こんな感じ。
// import もろもろは省略、追加で必要なものだけimport com.avaje.ebean.Expr;import models.User;/* アドレスにsampleを含む、* もしくはアドレスがないユーザを取得する的な*/public static List<User> get() {List<User> userList =User.find.where().or(Expr.like("userAddress", "%sample%"), Expr.isNull("userAddress")).findList();return userList;}
どうもうまくググれず無駄に時間がかかってしまったので。
お仕事中に書いたコードを抜粋して改変しているので、タイポがあったらごめんなさい。