A --> B --> C
关系,而是
A --> B <-- C
这是我的SQL查询
select s.* from sales s
inner join branch b on b.id = s.branch_id
inner join manager m on m.branch_id = b.id and m.name = 'Alice';
(摘自我这里的示例:https://www.db-fiddle.com/f/r5uvesivyahrp6kspwjxba/1)
query.innerJoin(QSales.branch, QBranch)
.innerJoin( ??? )
我所尝试的所有操作都给出了一些例外情况,如path expected for join!
假设,如果是一对一的,我可以像这样锁链...
query.innerJoin(QSales.branch, QBranch)
.innerJoin( QBranch.manager, QManager ).on(QManager.name.eq('Alice'));
但我没有那种关系。
通常,我已经炮制了一些样品,我找到了正确的组合。
此解决方案响应于在B和多个C之间具有manytoone
映射
query.innerJoin(QSales.branch, QBranch)
.innerJoin( QBranch.managers, QManager )
.on(QManager.name.eq('Alice'));
通过在分支中列出managers
,QueryDSL知道要做什么,并生成适合我的SQL。
如何在中实现或。一个简单的例子很有帮助。
问题内容: 我有以下查询。它工作正常,但我需要从另一个名为FB的表中提取BUserName,该表具有与FU表中的UserID相关的UserID字段。这可能吗? 只是为了澄清。我在FB表中没有UserName列。它确实有FB.UserID,它与FF.UserID有关系,这是我要从中提取第二个UserName的地方。因此,通过这种关系,我试图从与FB表中的userID相关的FF.UserID表中拉出用
我试图将QueryDSL与Spring Data JPA一起使用。
我有一个医院(点)的空间表,它与(非空间)价表(卷曲、紧急等)具有一对多关系。 医院(id,name,geom);化合价(id,名称,化合价) “name”是公共字段。 如何在PostgreSQL/Postgis中构造一个有效的Geojson,其中每个医院(点)可以有一个或多个价? 我已经尝试了这个查询的一些变体,但是总是给出相同的错误“作为表达式使用的子查询返回了多行”。 非常感谢!
基础回购 和存储库类 现在我想使用带有谓词查询的Repo。我需要形成一个谓词,在这个谓词中,我可以根据给定的Bs加载
我正在使用查询与Spring数据jpa。我已经实现了自定义存储库来查找人名。人员实体如下所示: 实施的自定义存储库: 在选择表达式中,我想连接三列来构造全名。如果数据库有如下记录- 那么我想选“约翰·斯诺先生”。有什么办法可以做到吗? 我不想选择整个记录来连接值,因为实体有其他列和许多关联,加载整个记录不好。