当前位置: 首页 > news >正文

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

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

        问题可能的原因:

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

        

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.注释判断部分有问题,以下提供正确的方法

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) 不分

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) }

相关文章:

  • 数据库安装
  • 测试理论快速入门
  • 记录Linux安装mysql8
  • vue3页面html导出word文档
  • AI视频领域的DeepSeek—阿里万相2.1图生视频
  • [C语言日寄] 字符串操作函数的使用及其拓展
  • C/C++获取结构体成员的偏移量
  • 【CXX】5.2 extern “C++“
  • 4.2 使用说明:手册写作利器VNote的使用
  • 大白话html第十一章
  • I²C总线应用场景及1.8V与3.3V电压选择
  • Nano-GraphRAG复现——只使用Ollama,无需API Key
  • 质量属性场景描述
  • IO基础练习4
  • CogToolBlock和CogIDTool工具
  • ES时序数据库的性能优化
  • C++ Primer 拷贝、赋值与销毁
  • 如何改变怂怂懦弱的气质(2)
  • 记录一次利用条件索引优化接口性能的实践
  • golang并发编程如何学习
  • 俄乌直接谈判结束,乌称“毫无成果”
  • 小雨伞保险经纪母公司手回集团通过港交所聆讯
  • 《制止滥用行政权力排除、限制竞争行为规定(修订草案征求意见稿)》公开征求意见
  • 一船明月过沧州:为何这座城敢称“文武双全”?
  • 上交所五方面落实募资新规:强化关键少数责任和股东权利保障
  • 科普|男性这个器官晚到岗,可能影响生育能力