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) }
相关推荐
阿维的博客日记3 小时前
Hippo4j 线程池监控平台部署手册
java·spring boot·后端
C+++Python5 小时前
详细介绍一下Java泛型的通配符
java·windows·python
JosieBook5 小时前
【数据库】时序预测能力的分级进化:TimechoAI如何让每一类用户都能精准预见未来
java·开发语言·数据库
一生了无挂6 小时前
Java处理JSON技巧教学(从基础到高阶实战全覆盖)
java·开发语言·json
李白的天不白7 小时前
使用 SmartAdmin 进行前后端开发
java·前端
swordbob7 小时前
Spring 单例 Bean 是线程安全的吗?
java·开发语言
2601_951643778 小时前
Python第一,Java跌出前三,C语言杀回来了
java·c语言·python·编程语言排行·技术趋势
腾科IT教育9 小时前
Spring AI Alibaba 向量(VectorStore)
人工智能·spring·microsoft
IT 行者10 小时前
GitHub Spec Kit 实战(五):/speckit.tasks 怎么拆——Spec Kit 五部曲收官
java·ai编程·claude
(Charon)10 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言