IDEA Generate POJOs.groovy 踩坑小计 | 生成实体 |groovy报错

一、无法生成注释或生成的注释是null

问题可能的原因:

1.没有从表里提取注释信息,修改def calcFields(table)方法即可

java 复制代码
def calcFields(table) {
  DasUtil.getColumns(table).reduce([]) { fields, col ->
    def spec = Case.LOWER.apply(col.getDataType().getSpecification())
    def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value
    fields += [[
                 column : col.getName(),
                 name : javaName(col.getName(), false),
                 comment: col.getComment(),
                 type : typeStr,
                 annos: ""]]
  }

2.注释判断部分有问题,以下提供正确的方法

java 复制代码
fields.each() {
    // 修正拼写错误,并使用安全导航操作符和真值判断
    if (it.comment?.trim() != "") {  // 使用 trim() 去除可能的空白字符
        out.println "\t/**"
        out.println "\t * ${it.comment}"
        out.println "\t */"
    }
    if (it.annos != "") {
        out.println "  ${it.annos}"
    }
    out.println "  private ${it.type} ${it.name};"
}

二、生成出的注释是乱码,IDEA提示可能是GBK字符

解决方案:指定生成文件的编码格式,修改def generate(table, dir) 不分

java 复制代码
def generate(table, dir) {
  def className = javaName(table.getName(), true)
  def fields = calcFields(table)
  new File(dir, className + ".java").withPrintWriter("UTF-8") { out -> generate(out, className, fields) }
相关推荐
异常君几秒前
RocketMQ 消息顺序性:从原理到实战的完整解决方案
java·rocketmq
无问8174 分钟前
Spring AOP:面向切面编程 详解代理模式
java·spring·代理模式·aop
知其然亦知其所以然4 分钟前
【面试必问】Spring支持注入null和空字符串吗?不懂别去面试了!
java·后端·面试
JavaDog程序狗13 分钟前
【Java】集合遍历remove-add操作,这些坑你掉过几个
java·后端
懋学的前端攻城狮14 分钟前
深入浅出JVM-02自动内存管理机制全面剖析
java·jvm·后端
努力的小郑24 分钟前
Spring中@Bean在@Component类中的使用:生效但有陷阱!
spring
努力的小郑25 分钟前
Spring框架Bean作用域机制深度解析与最佳实践
spring
Blossom.11825 分钟前
人工智能在智能教育中的创新应用与未来趋势
java·人工智能·深度学习·目标检测·机器学习·计算机视觉·语音识别
qq_543248521 小时前
redis的哨兵模式和Redis cluster
java·开发语言
异常君1 小时前
TCP TIME_WAIT 状态:原理、问题与优化方案
java·linux·tcp/ip