ebean中的复杂查询连接

Complex query join in ebean

我有以下架构。

A(Aid, Aname)

B(Bid, Aid, Bname)

C(Cid, Bid, Cname)

B.Aid->A.Aid

C.Bid->B.Bid

我需要将 C.Cname 的列表获取到给定的 A.Aid 集合。我想到了这个查询。

SELECT C.Cname
FROM B,C
WHERE B.Bid = C.Bid AND B.Aid IN ('1','2','3')

我是 ebean 的新手,我想使用 ebean 来做这件事。我该怎么做?我的模型如下。我正在使用 mysql 作为我的数据库。

class A
{
int Aid;
String Aname;
}

class B
{
int Bid;
A Aid;
String Bname;
}

class C
{
int Cid;
B Bid;
String Bname;
}
@Entity
class A {
   @Id
   int id;

   String name;
}

class B {
  @Id
  int id;

  @ManyToOne 
  A a;

  String name;
}

@Entity
class C {
  @Id
  int id;

  @ManyToOne
  B b;

  String name;
}

有了正确的模型,下一个请求就可以工作了:

Ebean.find(C.class)  
    .fetch("b")  
    .fetch("b.a")  
    .where()
    .in("b.a.id", [1, 2, 3])
    .findList();