如何生成psql视图的源代码,jOOQ相关配置不生效怎么处理?
jOOQ视图源码生成配置不生效解决方法
- 确认jOOQ版本
sourcesOnViews配置项仅在 jOOQ 3.16 及更高版本中提供支持,低于该版本的环境无法识别该配置,需先升级到 3.16+ 稳定版。 - 检查配置放置位置
这两个配置必须放置在代码生成器的database节点下,而非全局配置或其他节点,正确配置示例如下:- Maven 配置示例:
<generator> <database> <sources>true</sources> <sourcesOnViews>true</sourcesOnViews> <!-- 其余数据库相关配置 --> </database> <!-- 其余生成器相关配置 --> </generator>- Gradle 配置示例:
jooq { configuration { generator { database { sources = true sourcesOnViews = true // 其余数据库相关配置 } } } } - 验证数据库用户权限
jOOQ 代码生成使用的数据库账号需要拥有对应视图的 SELECT 权限,以及pg_catalog.pg_get_viewdef()函数的访问权限,才能读取到视图定义。可先手动用该账号执行以下SQL验证权限是否正常:
若执行报错或返回空,可执行授权语句:SELECT pg_get_viewdef('你的视图名称'::regclass);GRANT SELECT ON 你的视图名称 TO 你的jOOQ生成账号; - 物化视图额外配置
如果你要生成的是物化视图的源码,需要额外在database节点下增加配置:
Gradle 对应配置为<includeMaterializedViews>true</includeMaterializedViews>includeMaterializedViews = true。 - 清理缓存重新生成
配置调整完成后,删除之前生成的旧jOOQ代码,重新执行代码生成任务即可。
内容的提问来源于stack exchange,提问作者ramya
相关产品推荐
相关产品推荐

