Skip to content

Commit e5d028d

Browse files
authored
fix: MySQL JOIN 下只 SELECT ON 关联字段(保留原来提升性能的方式),感谢 wz11wz 的贡献 #826
#826
2 parents a05e2e2 + 957ba3d commit e5d028d

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6322,12 +6322,12 @@ LEFT JOIN ( SELECT count(*) AS count FROM sys.Comment ) AS Comment ON Comment.m
63226322
if (RequestMethod.isHeadMethod(method, true)) {
63236323
List<On> onList = join.getOnList();
63246324
List<String> column = onList == null ? null : new ArrayList<>(onList.size());
6325-
if (column != null) {
6325+
//解决 pg 如果只查询关联键,会报找不到column的错误
6326+
///* SELECT count(*) AS count FROM sys.Moment AS Moment
6327+
// LEFT JOIN ( SELECT * FROM sys.Comment ) AS Comment ON Comment.momentId = Moment.id LIMIT 1 OFFSET 0 */
6328+
if (column != null && joinConfig.isMSQL()) { // 暂时这样兼容 PostgreSQL 等不支持 SELECT 中不包含对应 key 的隐式 ON 关联字段的数据库
63266329
for (On on : onList) {
6327-
//解决 pg 如果只查询关联键,会报找不到column的错误
6328-
///* SELECT count(*) AS count FROM sys.Moment AS Moment
6329-
// LEFT JOIN ( SELECT * FROM sys.Comment ) AS Comment ON Comment.momentId = Moment.id LIMIT 1 OFFSET 0 */
6330-
//column.add(on.getKey());
6330+
column.add(on.getKey()); // TODO PostgreSQL 等需要找到具体的 targetTable 对应 targetKey 来加到 SELECT,比直接 SELECT * 性能更好
63316331
}
63326332
}
63336333

0 commit comments

Comments
 (0)