У меня есть следующие две модели в моем проекте:Play Framework ManyToMany Ассоциация Access
@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;
Поскольку эти две сущности имеют @ManyToMany ассоциации, играть! автоматически создает таблицу в моей базе данных 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'
Так с этим "запроса" вызов, я должен вернуться reports
с id
1 и 3.
Используя обычный способ
Ebean.find(Reports.class)
.where()
.eq("tags_name", "bar")
.findList()
не будет работать, потому что нет таких полей с tags_name
в Reports
модели/таблицы
Я не знаю, что код, чтобы сделать этот вызов запроса т.к. мой опыт работы с Ebean очень мало.
вы должны пометить его с языком, который вы используете игру –
я извиняюсь за это. Я просто отметил его. Использование Java. – cYn
Не нужно извиняться! Это просто поможет в формате кода и немного побольше, если возможно, для вашего вопроса. –