复杂查询在ebean中加入

时间:2015-01-23 02:50:34

标签: mysql sql database ebean

我有以下架构。

A(Aid, Aname)

B(Bid, Aid, Bname)

C(Cid, Bid, Cname)

B.Aid->A.Aid

C.Bid->B.Bid

我需要将C.Cname列表提供给给定的A.Aid s。我提出了这个问题。

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

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

class A
{
int Aid;
String Aname;
}

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

class C
{
int Cid;
B Bid;
String Bname;
}

1 个答案:

答案 0 :(得分:2)

@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();