0

PlayFramwork1.2.4を使用しています

リレーションシップを持つ3つのモデルクラスを作成しました:

ヘッダー<1-n>行-1>LineType

@Entity
public class Header extends Model {
   @OneToMany(mappedBy="header" , cascade=CascadeType.ALL)
   public List<Line> lines;
   ...
}

@Entity
public class Line extends Model{
   @ManyToOne
   public Header header ;

  @ManyToOne
   publicLineType lineType;
   ...
}

@Entity
public class LineType extends Model {

   public Integer code ;
   ...
}

ヘッダー検索中に線種にフィルターをかけたい。

Play FrameworkでJPQL(またはその他)を使用してこのSQLクエリに相当するものを作成するにはどうすればよいですか?

 Select * from header where exists(select 1 from line,typeline where line.header=header.id and  line.lineType=linetype.id and linetype.code = 'X')
4

1 に答える 1

1

私は自分の質問に答えます:

Query query = JPA.em().createQuery("select header from Header as header where exists(select line from Line line JOIN ligne.lineType as type where ligne.header=header and type.code='X')");
List<Header> headers = query.getResultList();

内部結合:http ://docs.oracle.com/html/E24396_01/ejb3_langref.html#ejb3_langref_inner_joins

存在する:http://docs.oracle.com/html/E24396_01/ejb3_langref.html#ejb3_langref_exists

于 2012-07-06T10:00:01.123 に答える