TableJoin.java 988 B

123456789101112131415161718192021222324252627282930313233
  1. package org.example.join.model;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.mybatisplus.core.toolkit.StringPool;
  5. import lombok.Getter;
  6. import lombok.RequiredArgsConstructor;
  7. import org.example.join.sql.SqlConstant;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. import java.util.stream.Collectors;
  11. @Getter
  12. @RequiredArgsConstructor
  13. public class TableJoin implements ITable {
  14. private final String joinType;
  15. private final ITable table;
  16. private final List<QueryCondition> queryConditionList = new ArrayList<>();
  17. @Override
  18. public String toSql() {
  19. String on = queryConditionList.stream()
  20. .filter(ObjectUtil::isNotNull)
  21. .map(QueryCondition::toSql)
  22. .filter(StrUtil::isNotBlank)
  23. .collect(Collectors.joining(SqlConstant.AND));
  24. return joinType + table.toSql() + (StrUtil.isNotBlank(on) ? SqlConstant.ON + on : StringPool.EMPTY);
  25. }
  26. }