Skip to content

Commit

Permalink
feat: 优化SqlBuilder中的相关代码;
Browse files Browse the repository at this point in the history
  • Loading branch information
limeng32 committed Mar 18, 2024
1 parent 8826dee commit d5dae81
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
14 changes: 10 additions & 4 deletions src/main/java/indi/mybatis/flying/builders/SqlBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -1035,7 +1035,7 @@ public static String buildUpdateBatchSql(Object objectC, FlyingModel flyingModel
continue;
}
if (m == null) {
m = new HashMap<>();
m = new HashMap<>(16);
}
FieldMapper maybeDelegate = fieldMapper.isHasDelegate() ? fieldMapper.getDelegate() : fieldMapper;
if (fieldMapper.isOpVersionLock()) {
Expand Down Expand Up @@ -1707,6 +1707,13 @@ public static String buildCountSql(Object object, FlyingModel flyingModel)
return selectSql.append(fromSql).append(whereSql).toString();
}

private static boolean dealVisiable(boolean useWhiteList, FieldMapper fieldMapper, String whiteListTag,
String ignoreTag) {
// TODO 此处有优化空间
return (!useWhiteList || fieldMapper.getWhiteListTagSet().contains(whiteListTag))
&& (!fieldMapper.getIgnoreTagSet().contains(ignoreTag));
}

private static void dealMapperAnnotationIterationForSelectAll(boolean objectIsClass, Object object,
StringBuilder selectSql, StringBuilder fromSql, StringBuilder whereSql, StringBuilder groupBySql,
AtomicInteger index, FlyingModel flyingModel, TableName tn, Mapperable originFieldMapper,
Expand Down Expand Up @@ -1781,9 +1788,8 @@ private static void dealMapperAnnotationIterationForSelectAll(boolean objectIsCl

if (flyingModel != null) {
for (FieldMapper fieldMapper : tableMapper.getFieldMapperCache().values()) {
// TODO 此处有优化空间
if ((!useWhiteList || fieldMapper.getWhiteListTagSet().contains(whiteListTag))
&& (!fieldMapper.getIgnoreTagSet().contains(ignoreTag))) {
boolean visiable = dealVisiable(useWhiteList, fieldMapper, whiteListTag, ignoreTag);
if (visiable) {
dtoFieldMap = dealSelectSql(flyingModel, fieldMapper, dtoFieldMap, index, selectSql, tableName,
prefix);
}
Expand Down
3 changes: 2 additions & 1 deletion src/test/java/indi/mybatis/flying/test/AccountTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ public void testSorter() {
new Order(Account_Condition.field_password, Conditionable.Sequence.DESC)));
c = accountService.selectAll(ac);
accounts = c.toArray(new Account_[c.size()]);
Assert.assertEquals(new Long(4), accounts[0].getId());
Assert.assertEquals(4, accounts[0].getId().longValue());
ac.setSorter(new SortParam(new Order("name", Conditionable.Sequence.DESC, ac),
new Order("name", Conditionable.Sequence.ASC, ac)));
c = accountService.selectAll(ac);
Expand All @@ -267,6 +267,7 @@ public void testSorter() {
new Order("name", Conditionable.Sequence.ASC, ac.getRole())));
Account_ account = accountService.selectOne(ac);
Assert.assertEquals("carl", account.getName());
Assert.assertNull(account.getPassword());
}

/** 测试limiter功能 */
Expand Down

0 comments on commit d5dae81

Please sign in to comment.