使用Speedment从两个表中选择字段

时间:2017-08-03 08:33:37

标签: java sql speedment

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

这是我的主要问题:

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

我想从不同的表中获取/选择字段:

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

FROM table1,table2

我找到了一种方法:

        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_>>,来实现字段,其中&#34; String是来自&#34; concretecomponentManager&#34;的字段。表

2 个答案:

答案 0 :(得分:0)

Speedment(截至最新版本3.0.13)不支持JOIN。但是,您可以在数据库中创建一个VIEW,将两个表连接在一起,然后使用Speedment生成代码。

答案 1 :(得分:0)

我不明白这个问题的例子,但是想说明一下 速度实际上确实支持连接:

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