如何在JPA Buddy反向工程中获取表与字段注释?
解决JPA Buddy反向生成实体类未同步PostgreSQL注释的问题
检查数据库连接配置
在IntelliJ的Database工具窗口中,选中你的PostgreSQL连接,右键选择「Properties」,切换到「Options」标签页,确保Read comments选项已勾选。PostgreSQL默认不会主动读取表和字段的注释,这个开关是JPA Buddy获取注释信息的前提。
配置JPA Buddy反向生成模板
打开JPA Buddy的「Reverse Engineering」对话框,点击右上角的齿轮图标进入设置界面:
- 实体类模板:在类定义上方添加
/** ${table.comment} */,生成的实体类会自动带上数据库表的注释。 - 字段模板:在字段定义上方添加
/** ${column.comment} */,字段注释会同步数据库中的对应描述。
替代方案(参考JBoss Tools逻辑)
如果上述配置仍未生效,可以手动提取注释后批量更新:
- 执行以下SQL查询获取所有表和字段的注释(替换
public为你的目标schema):
SELECT c.table_name, c.column_name, pgd.description AS column_comment, obj_description(c.table_name::regclass) AS table_comment FROM information_schema.columns c LEFT JOIN pg_description pgd ON pgd.objoid = (c.table_name || '.' || c.column_name)::regclass AND pgd.objsubid = c.ordinal_position WHERE c.table_schema = 'public';
- 利用IntelliJ的批量替换功能,将查询到的注释批量添加到生成的实体类和字段上。
内容的提问来源于stack exchange,提问作者Vladimir Surkov
相关产品推荐
相关产品推荐

