@@ -36,19 +36,53 @@ public class ConfigMigrateMapperByDerby extends AbstractMapperByDerby implements
3636 public MapperResult findConfigIdNeedInsertMigrate (MapperContext context ) {
3737 String sql = "SELECT ci.id FROM config_info ci WHERE ci.tenant_id = '' AND NOT EXISTS "
3838 + " ( SELECT 1 FROM config_info ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id AND ci2.tenant_id = 'public' )"
39- + " AND id > ?" + " OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
40- return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .LAST_MAX_ID ),
41- context .getWhereParameter (FieldConstant .PAGE_SIZE )));
39+ + " AND ci.id > ?" + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
40+ return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .ID ),
41+ context .getPageSize ()));
42+ }
43+
44+ @ Override
45+ public MapperResult findConfigNeedUpdateMigrate (MapperContext context ) {
46+ String sql = "SELECT ci.id, ci.data_id, ci.group_id, ci.tenant_id"
47+ + " FROM config_info ci WHERE ci.tenant_id = ? AND "
48+ + " (ci.src_user <> ? OR ci.src_user IS NULL) AND EXISTS "
49+ + " ( SELECT 1 FROM config_info ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id "
50+ + " AND ci2.tenant_id = ? AND ci2.src_user = ? AND ci2.md5 <> ci.md5 "
51+ + " AND ci2.gmt_modified < ci.gmt_modified )"
52+ + " AND ci.id > ?" + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
53+ return new MapperResult (sql ,
54+ CollectionUtils .list (context .getWhereParameter (FieldConstant .SRC_TENANT ),
55+ context .getWhereParameter (FieldConstant .SRC_USER ),
56+ context .getWhereParameter (FieldConstant .TARGET_TENANT ),
57+ context .getWhereParameter (FieldConstant .SRC_USER ), context .getWhereParameter (FieldConstant .ID ),
58+ context .getPageSize ()));
4259 }
4360
4461 @ Override
4562 public MapperResult findConfigGrayIdNeedInsertMigrate (MapperContext context ) {
4663 String sql = "SELECT ci.id FROM config_info_gray ci WHERE ci.tenant_id = '' AND NOT EXISTS "
4764 + " ( SELECT 1 FROM config_info_gray ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id"
48- + " AND ci2.tenant_id = 'public' AND ci2.gray_name = ci1.gray_name)" + " AND id > ?"
49- + " OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
50- return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .LAST_MAX_ID ),
51- context .getWhereParameter (FieldConstant .PAGE_SIZE )));
65+ + " AND ci2.tenant_id = 'public' AND ci2.gray_name = ci.gray_name)" + " AND ci.id > ?"
66+ + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
67+ return new MapperResult (sql , CollectionUtils .list (context .getWhereParameter (FieldConstant .ID ),
68+ context .getPageSize ()));
69+ }
70+
71+ @ Override
72+ public MapperResult findConfigGrayNeedUpdateMigrate (MapperContext context ) {
73+ String sql = "SELECT ci.id, ci.data_id, ci.group_id, ci.tenant_id, ci.gray_name "
74+ + " FROM config_info_gray ci WHERE ci.tenant_id = ? AND "
75+ + " (ci.src_user <> ? OR ci.src_user IS NULL) AND EXISTS "
76+ + " ( SELECT 1 FROM config_info_gray ci2 WHERE ci2.data_id = ci.data_id AND ci2.group_id = ci.group_id "
77+ + " AND ci2.gray_name = ci.gray_name AND ci2.tenant_id = ? AND ci2.src_user = ? AND ci2.md5 <> ci.md5 "
78+ + " AND ci2.gmt_modified < ci.gmt_modified )"
79+ + " AND ci.id > ?" + " ORDER BY ci.id OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY" ;
80+ return new MapperResult (sql ,
81+ CollectionUtils .list (context .getWhereParameter (FieldConstant .SRC_TENANT ),
82+ context .getWhereParameter (FieldConstant .SRC_USER ),
83+ context .getWhereParameter (FieldConstant .TARGET_TENANT ),
84+ context .getWhereParameter (FieldConstant .SRC_USER ), context .getWhereParameter (FieldConstant .ID ),
85+ context .getPageSize ()));
5286 }
5387
5488 @ Override
0 commit comments