私のプロジェクトには次の 2 つのモデルがあります。
@Entity
public class Reports extends Model{
@Id
@GeneratedValue
public int id;
@ManyToMany(cascade = CascadeType.ALL)
public List<Tags> tags;
と
@Entity
public class Tags extends Model{
@Id
public String name;
@ManyToMany(cascade = CascadeType.ALL)
public Reports reports;
これら 2 つのエンティティには @ManyToMany 関連付けがあるため、Play! PostgreSQL データベースにテーブルを自動的に作成します。
create table reports_tags (
reports_id integer not null,
tags_name varchar(255) not null,
constraint pk_reports_tags primary key (reports_id, tags_name))
;
そして、これがどのreports_tags
ように見えるべきかのサンプルデータです:
reports_id tags_name
1 pie
1 bar
1 line
3 plot
3 bar
4 scattered
4 plot
私が問題を抱えているのは、私がしたいということですfind all reports where tags_name = 'bar'
したがって、その「クエリ」呼び出しで、1 と 3 に戻る必要がreports
ありid
ます。
従来の方法を使用して
Ebean.find(Reports.class)
.where()
.eq("tags_name", "bar")
.findList()
モデル/テーブルtags_name
にそのようなフィールドがないため、機能しませんReports
Ebean の経験がほとんどないため、そのクエリ呼び出しを行うコードが何であるかはわかりません。