Quarkus+DB2环境下如何禁用Hibernate的SequenceInformation获取
解决方案
你可以根据实际场景选择以下任意一种方案消除该错误日志:
方案1:配置Hibernate关闭新ID生成器映射(和Spring配置效果等效)
你提到的Spring配置spring.jpa.hibernate.use-new-id-generator-mappings=false对应Hibernate原生配置项,在Quarkus项目的application.properties文件中添加如下配置即可生效:
quarkus.hibernate-orm.additional-properties."hibernate.id.new_generator_mappings" = false
由于你的所有ID均为手动生成,不需要Hibernate提供ID生成能力,关闭该配置后Hibernate不会在启动时主动查询数据库的SEQUENCE表,从根源上避免权限报错。
方案2:给数据库用户授予序列表查询权限
如果不想修改Hibernate相关配置,可以联系DBA为你的应用数据库账号执行授权语句:
GRANT SELECT ON SYSCAT.SEQUENCES TO DB2MY-USER;
授权后Hibernate可以正常拉取序列信息,报错会直接消失。
方案3:屏蔽对应错误日志(兜底方案)
如果以上两种方案均无法落地,可以通过调整日志级别直接过滤该错误输出,在application.properties中添加:
quarkus.log.category."org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl".level=WARN
注意:该方案仅屏蔽日志展示,没有解决Hibernate尝试查询序列表的本质问题,仅建议作为临时兜底使用,优先选择方案1或方案2。
内容的提问来源于stack exchange,提问作者Felipe Windmoller
相关产品推荐
相关产品推荐

