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) }
相关推荐
wuxinyan12326 分钟前
Java面试题47:一文深入了解Nginx
java·nginx·面试题
新知图书28 分钟前
搭建Spring Boot开发环境
java·spring boot·后端
冰河团队32 分钟前
一个拉胯的分库分表方案有多绝望?整个部门都在救火!
java·高并发·分布式数据库·分库分表·高性能
洛_尘36 分钟前
Java EE进阶:Linux的基本使用
java·java-ee
宸津-代码粉碎机38 分钟前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python
MaCa .BaKa40 分钟前
47-心里健康咨询平台/心理咨询系统
java·spring boot·mysql·tomcat·maven·intellij-idea·个人开发
木子欢儿1 小时前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
Devin~Y1 小时前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
蜡台1 小时前
IDEA 一些 使用配置和插件
java·ide·intellij-idea
磊 子2 小时前
redis详解2
java·spring boot·redis