我的项目中有以下两个模型:
@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
和 3。
使用传统的方式
Ebean.find(Reports.class)
.where()
.eq("tags_name", "bar")
.findList()
不起作用,因为模型/表tags_name
中没有这样的字段Reports
我不知道进行该查询调用的代码是什么,因为我对 Ebean 的经验很少。