Playframework 播放2.3埃宾,@OneToMany与join的关系

Playframework 播放2.3埃宾,@OneToMany与join的关系,playframework,one-to-many,ebean,Playframework,One To Many,Ebean,我有两门课,如下所示 @Entity public class A extends Model { @Id private Long id; private String value; @OneToMany(targetEntity = AB.class, mappedBy = "a", cascade=CascadeType.ALL) private List<AB> ab; } @Entity public class AB exte

我有两门课,如下所示

@Entity 
public class A extends Model 
{ 
   @Id
   private Long id;
   private String value; 

   @OneToMany(targetEntity = AB.class, mappedBy = "a", cascade=CascadeType.ALL) 
   private List<AB> ab;
}

@Entity 
public class AB extends Model 
{ 
   @Id
   private Long id;

   @ManyToOne(targetEntity = A.class) 
   private A a; 

   private Integer type;
}
我尝试了一切,@JoinTable,@jointcolumn等等

我知道我可以直接用sql完成,因为我想知道这段代码有什么问题。

试试这个

A.find.fetch("ab").where().eq("t1.type", 3).findList();
t1让我有了一段时间,但生成的SQL似乎让连接表变得清晰。我正在使用PostgreSQL。我认为不需要引用3,因为AB.type是一个整数(DB中的int)

这可能也行

A.find.where().eq("ab.type",3).findList()

我试过你的建议,但不幸的是,我有错误。对于A.find.fetch(“ab”).where().eq(“t1.type”,3.findList();[RuntimeException:从模型中获取路径ab的BeanDescriptor时出错。A]对于第二个A.find.where().eq(“ab.type”,3).findList()[PersistenceException:查询抛出的SQLException:where子句中的未知列'ab.type'绑定值:[3]查询是:从t0中选择t0.id c0,t0.value c1,其中ab.type=?]尝试删除除级联之外的所有额外属性。我在A侧有@OneToMany(cascade=CascadeType.ALL),在AB侧只有@ManyToOne。
A.find.fetch("ab").where().eq("t1.type", 3).findList();
A.find.where().eq("ab.type",3).findList()