如何通过PostgreSQL查询生成Spring Boot接口投影的Getter代码
用PostgreSQL查询生成Spring Boot接口投影的Getter方法
你需要生成UserAccess接口中的Optional类型Getter方法,无需手动编写,可以通过PostgreSQL查询直接生成对应的代码片段,步骤如下:
1. 编写PostgreSQL生成查询
根据数据库字段的类型和命名,执行以下SQL查询(替换成你实际涉及的表/视图名称):
SELECT CONCAT( ' Optional<', CASE data_type WHEN 'bigint' THEN 'Long' WHEN 'character varying' THEN 'String' WHEN 'boolean' THEN 'Boolean' ELSE 'Object' -- 其他数据类型可按需补充映射 END, '> get', INITCAP(REPLACE(column_name, '_', '')), '();' ) AS method_definition FROM information_schema.columns WHERE table_name IN ('user_table', 'role_table', 'form_table', 'form_tab_table', 'branch_table', 'entity_table', 'org_table') -- 替换为你的实际表名 ORDER BY ordinal_position;
2. 理解查询逻辑
- 类型映射:通过
CASE语句将PostgreSQL原生类型转换为对应的Java包装类型(如bigint→Long) - 方法名转换:用
REPLACE去掉字段名的下划线,再用INITCAP将首字母大写,拼接成符合Java规范的Getter方法名(如user_id→getUserId) - 代码拼接:将类型、方法名组合成完整的
Optionalgetter方法定义
3. 生成并使用代码
执行查询后,将结果集中的method_definition列内容复制出来,直接放到UserAccess接口中即可,无需手动逐行编写。
注意:如果涉及多表关联的自定义字段(如
user_role_read_only),可以将这些字段手动加入查询,或者创建一个包含所有所需字段的视图,直接查询视图的字段信息来生成代码。
内容的提问来源于stack exchange,提问作者ranidu harshana
相关产品推荐
相关产品推荐

