5

私は Play Framework 2.1.0 と Ebean を使用していますが、以下にリストされている次のシナリオを照会しているときに問題が発生しています。

データベース内のテーブルを表す 3 つのクラスがあります。

class project {
   ...
   @OneToMany
   public SubProject sub;   
}

class SubProject {
   ...
   @ManyToOne
   public Project project;

   @OneToMany 
   public MiniProject mini;    
}   

class MiniProject {
  ...
  @ManyToOne
  public SubProject sub;    
}

Ebeanの使用方法

  • プロジェクトのリストのすべてのサブプロジェクトを取得しますか?

  • Project のすべてのミニプロジェクトを取得しますか?

  • サブプロジェクトのリストが与えられた場合、すべてのミニプロジェクトを取得する方法は?

4

3 に答える 3

0

エンティティが固定されており、実際にOneToMany 関連付けにList<SubProject>またはがあると仮定しSet<SubProject>ます (MiniProject の場合も同じです)。

プロジェクトのリストのすべてのサブプロジェクトを取得しますか?

select s from Project p inner join p.subProjects s where p.id in :projectIds

Project のすべてのミニプロジェクトを取得しますか?

select m from Project p 
inner join p.subProjects s 
inner join s.miniProjects m
where p.id = :projectId

サブプロジェクトのリストが与えられた場合、すべてのミニプロジェクトを取得する方法。

最初のクエリと同じ:

select m from SubProject s inner join s.miniProjects m where s.id in :subProjectIds
于 2013-04-04T14:11:14.230 に答える