2017-08-03 62 views
-6

我想使用Speedment ORM从两个表中选择字段,并通过System.out.println显示寄存器。使用Speedment从两个表中选择字段

这是我的主查询:

 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 * FROM表1 INNER JOIN tabl2 ON table1.id = table2.id

FROM表1,表2

我已经找到了一种方法:

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

但我想用值Map<String, List<Interface_>>,其中“字符串是一场从‘concretecomponentManager实现了从最后的连接表中的字段’表

+0

你试过了什么? – sForSujit

回答

0

Speedment(截至最新版本3.0.13)不支持JOIN。但是,您可以在数据库中创建一个VIEW,将两个表联接在一起,然后使用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