描述:遇到一个多字段join,出现的N+1查询问题,翻了文档,百度,issue都未能解决。下面是具体截图。

com.github.APIJSON
apijson-framework
5.1.0
程序是从官方github上拉下来的DEMO:APIJSONDemo(仅改成我们自己的数据源)。
- 下面是request跟response

(PS:问题已解决 - 基于5.1.0的版本):
简单说问题是出在APIJSON在【解析】副表on条件顺序、【生成缓存】组装sql的where条件顺序、【查询缓存】按照前端指定顺序组装key的时候,如果是多个字段参与join就会出现顺序不一致,单个字段join不会有有顺序问题也就不会出现1+N查询。
、为副表声明idKey,代码如下:
覆盖AbstractSQLConfig.SIMPLE_CALL_BACK的getIdKey方法,为副表指定idKey,可以帮助APIJSON生成缓存Key的时候,强制按照:主键, 主键{}, 用户主键, 用户主键{} 顺序组装。

感谢@TommyLemon大佬及时的解答
描述:遇到一个多字段join,出现的N+1查询问题,翻了文档,百度,issue都未能解决。下面是具体截图。

- 这是我们使用的版本:
com.github.APIJSON apijson-framework 5.1.0程序是从官方github上拉下来的DEMO:APIJSONDemo(仅改成我们自己的数据源)。
(PS:问题已解决 - 基于5.1.0的版本):

简单说问题是出在APIJSON在【解析】副表on条件顺序、【生成缓存】组装sql的where条件顺序、【查询缓存】按照前端指定顺序组装key的时候,如果是多个字段参与join就会出现顺序不一致,单个字段join不会有有顺序问题也就不会出现1+N查询。
、为副表声明idKey,代码如下:
覆盖AbstractSQLConfig.SIMPLE_CALL_BACK的getIdKey方法,为副表指定idKey,可以帮助APIJSON生成缓存Key的时候,强制按照:主键, 主键{}, 用户主键, 用户主键{} 顺序组装。
感谢@TommyLemon大佬及时的解答