当我们有多个表时获取 Querydsl Oracle Rowid

Posted

技术标签:

【中文标题】当我们有多个表时获取 Querydsl Oracle Rowid【英文标题】:Get Querydsl Oracle Rowid when we have more than one table 【发布时间】:2019-09-07 14:12:39 【问题描述】:

在 querydsl 中使用 OracleGrammar.rowid 时遇到问题,我们需要连接多个表,并且 rowid 列在查询中变得不明确。我搜索了指定rowid表的方法,仍然找不到答案,请帮助我

query.select(OracleGrammar.rowid, Q1.a, Q2.b).from( Q1, Q2)

OracleGrammar.rowid => 模棱两可的列

谢谢。

【问题讨论】:

连接多个表时,需要 rowid 做什么? 实际上我正在转换旧查询而不会破坏它的功能。 【参考方案1】:

您可以使用stringTemplate() 创建模板:

Expressions.stringTemplate("0.rowid", Q1.a)

【讨论】:

非常感谢!如果您有任何好的参考,请分享 @MaxExplode:引用是什么意思? @MaxExplode:好吧,既然你在问,一个很好的参考是jooq.org ;-)(因为我在那个竞争对手的产品上工作) 哦,非常感谢你帮助我,jooq社区版不支持oracle,这就是我使用querydsl的原因 @MaxExplode:那祝你好运!

以上是关于当我们有多个表时获取 Querydsl Oracle Rowid的主要内容,如果未能解决你的问题,请参考以下文章

mysql和oracle的语法差异(网络收集)

获取插入数据库表时记录得到的唯一 id

Querydsl.JPQLQuery 获取记录数

Querydsl:如何选择特定列

QueryDSL 在构建谓词查询时添加交叉连接

在 Spring Data 中为同一 QueryDSL 路径创建多个别名