mysql - MySQL 查询到 QueryDsl 查询(处理别名)
问题描述
我正在尝试将以下 MySQL 查询转换为 QueryDSL
SELECT t1.*
FROM TrainTable t1 LEFT JOIN TrainTable t2
ON (t1.Train = t2.Train AND t1.Time < t2.Time)
WHERE t2.Time IS NULL;
但我被困在如何处理ON
零件和WHERE
零件上的别名上。
这就是我的想法:
QTrainTable qt1 = new QTrainTable ("t1");
QTrainTable qt2 = new QTrainTable ("t2");
List<TrainTable > fetch = query.select(qt1)
.from(qt1)
.leftJoin(qt2).on(qt1.institution.id.eq(qt2.institution.id).and(qt1.transDate.lt(qt2.transDate)))
.where(qt2.transDate.isNull())
.fetch();
但我得到Path expected for join
错误。抛出错误,因为 和 之间没有任何关系qt1
,如此处qt2
所述。
MySQL 查询如何在 QueryDSL 中重写?
解决方案
推荐阅读
- reactjs - 如何将 React-app-rewired 与 Customize-CRA 集成
- powershell - 在 PowerShell 脚本中使用 7-zip 归档以 `-` 开头的文件名时出现“未知开关”错误
- reactjs - React 项目使用 parcel bundler 而不是 Webpack
- angular - 通过在 Angular 中使用预加载策略,初始加载时间正在增加
- git - “线程安全” git pull 或如何避免“.../.git/index.lock':文件存在。”
- c# - Nreco.VideoConverter,如何将转换后的文件名保存到数据库?
- javascript - React App 中是否允许在 App.js 文件中获取数据?
- sass - 有没有办法在没有变量的情况下在 sass 中获得祖父母的名字?
- python - python3 mysql连接器模块抛出异常-ValueError:无法处理参数
- knex.js - “没有传递命令行连接参数” Knex 错误