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) }
相关推荐
二哈赛车手8 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
栗子~~8 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8299 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
未若君雅裁10 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手10 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记11 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI11 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding12 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
小小编程路12 小时前
C++ 多线程与并发
java·jvm·c++
AI视觉网奇12 小时前
linux 检索库 判断库是否支持
java·linux·服务器