2017-08-03 22 views
-6

スピードORMで2つのテーブルのフィールドを選択し、System.out.printlnでレジスタを表示します。スピードを持つ2つのテーブルのフィールドを選択

これは私のメインのクエリです:

 return AMDB.INSTANCE.interface_Manager().stream().filter(Interface_.INTERFACEID.contains(s)) 
      .map(AMDB.INSTANCE.abstractcomponentManager().finderBy(Interface_.INTERFACE_COMPONENT_E_ID)) 
      .flatMap(AMDB.INSTANCE.concretecomponentManager().finderBackwardsBy(Concretecomponent.ABSTRACTCOMPONENT_E_ID)) 
      .map(cc -> cc.getConcretecomponentCamCamid()) 
      .collect(Collectors.toList()); 

そして私が取得したい/ diferentテーブルからフィールドを選択:

StreamComposition.concatAndAutoClose(
      AMDB.INSTANCE.interface_Manager().stream().filter(Interface_.INTERFACEID.contains(s)) 
        .map(i -> i.getInterfaceid()), 

      AMDB.INSTANCE.interface_Manager().stream().filter(Interface_.INTERFACEID.contains(s)) 
        .map(AMDB.INSTANCE.abstractcomponentManager().finderBy(Interface_.INTERFACE_COMPONENT_E_ID)) 
        .map(ac -> ac.getComponentname()), 

      AMDB.INSTANCE.interface_Manager().stream().filter(Interface_.INTERFACEID.contains(s)) 
        .map(AMDB.INSTANCE.abstractcomponentManager().finderBy(Interface_.INTERFACE_COMPONENT_E_ID)) 
        .flatMap(AMDB.INSTANCE.concretecomponentManager().finderBackwardsBy(Concretecomponent.ABSTRACTCOMPONENT_E_ID)) 
        .map(cc -> cc.getConcretecomponentCamCamid()) 
    ).forEachOrdered(System.out::println); 

多分など:

SELECT * INNERがtabl2のJOIN TABLE1 FROM ON table1.id = table2.id

または

table1の、table2の

FROM

私は1つの方法を発見した:

 Map<Abstractcomponent, List<Interface_>> map0 = AMDB.INSTANCE.interface_Manager().stream().filter(Interface_.INTERFACEID.contains(s)) 
      .collect(Collectors.groupingBy(AMDB.INSTANCE.abstractcomponentManager().finderBy(Interface_.INTERFACE_COMPONENT_E_ID))); 

をしかし、私はconcretecomponentManager 『「文字列からフィールドで』値Map<String, List<Interface_>>,で最後の参加のテーブルからフィールドを実現したいですテーブル

+0

何を試しましたか? – sForSujit

答えて

0

スピード(最新リリース3.0.13現在)では、JOINがサポートされていません。ただし、データベースにVIEWを作成して2つのテーブルを結合し、Speedmentを使用してコードを生成することができます。

0

は、私は質問の例を理解し、しかし speedmentが実際にサポートが参加しないことを発言したかっはありません:

Map<Actor, List<Film>> filmographies = filmActors.stream() 
.collect(
    groupingBy(actors.finderBy(FilmActor.ACTOR_ID), // Applies the FilmActor to ACTOR classifier 
     mapping(
      films.finderBy(FilmActor.FILM_ID), // Applies the FilmActor to Film finder 
      toList()       // Use a List collector for downstream aggregation. 
     ) 
    ) 
); 

joinsmany to manypivot dataを参照してください。

関連する問題