Finder
例としてモデルを使用する必要があります。
package models;
import play.db.ebean.Model;
import javax.persistence.*;
@Entity
public class Journey extends Model {
@Id
public Integer id;
public static Finder<Integer, Journey> find
= new Model.Finder<>(Integer.class, Journey.class);
// other fields
public String address;
public String country;
}
次の方法で簡単にレコードを選択できます。
List<Journey> allJourneys = Journey.find.all();
List<Journey> searchedJourneys = Journey.find.where().like("address", "%foo%").findList();
Journey firstJourney = Journey.find.byId(123);
基本ケースでは、これをモデルに追加できます。
public static List<Journey> searchByAddress(String address){
return find.where().like("address", "%"+address+"%").findList();
}
など。リレーションを含むオブジェクト全体を返すため、大きなデータセットでは重すぎる可能性があります.Finderのチェーンメソッドなどselect()
でより最適化されたクエリを使用fetch()
して、現在必要なデータを指すことができます。
Ebean の APIには他の可能性もありますが、いずれにせよ、どのアプローチが最適かを宣言する必要があります。
computer's database
ところで、この ORM に慣れるための例として、既存のサンプル アプリケーションを調べる価値があります。
編集
大文字と小文字を区別しない検索には、追加の式、つまりilike
(の代わりにlike
) 、istartsWith
、iendsWith
、およびieq
があります。彼らは最初に何バージョンなしで同じことをします。icontains
iexampleLike
i
API でプレビューすることもできます。