zxcwindy

Results 2 comments of zxcwindy

> 全局下划线驼峰互转: > > 1. 重写APIJSONSQLConfig.getSQLKey,APIJSONSQLConfig.setColumn,APIJSONSQLConfig.onGetJoinString(格式化Join里的Key) > 2. 重写APIJSONSQLExecutor.getKey > 最终实现了一个相对理想的结果,就是不太确定这种方式有没有隐患 @SangSpace APIJSONSQLConfig.onGetJoinString这一步你如何实现的呢,我格式化了key和targetKey,但是会触发一个问题,当关联的两个表有相同的字段时,会发起1+n条sql请求(错误的期望),如果是用下划线关联则只会发1条sql(正确的预期)。 下面是异常的样例: ![yichang](https://github.com/user-attachments/assets/b57b2600-bb81-4e72-bbcc-c29899932486) 这个是正常的样例: ![zhengchang](https://github.com/user-attachments/assets/e994591f-a0e8-43e4-8791-9400103357b1)

尝试了下,没有办法直接用getKey(on.getKey())的方式替换,因为getKey()获取到是类似"`User`.`user_id`"的格式,在join的相关代码中,“quote + jt + quote”这段代码会再加一个别名,导致sql拼接成"`User`.`User`.`user_id`的形式,我在AbstractSQLConfig中添加了一个formatJoinKey的方法来包装,formatJoinKey(on.getKey())的形式,在子类里面可以自定义格式改写。 但以上也还是只解决sql的问题,并没有解决额外发送sql 的问题,不知道是哪里触发了。 正常来说,只生成下面这一条SQL即可 ``` 2024-08-05 11:47:38.760: AbstractSQLExecutor.DEBUG: > ``` 但是改了join的key之后,会额外再执行一条如下的SQL: ``` 2024-08-05 11:47:38.767: AbstractSQLExecutor.DEBUG: > ``` 这个SQL如果不做join的key进行转换的话,是不会出现的,而且出现了也没啥意义。 **这个问题如何解决呢?**