java - Spring boot - Snowflake JDBC - 应用程序加载时自动更改 session

标签 java spring spring-boot snowflake-cloud-data-platform

我正在尝试将 Snowflake 连接到基于 Spring boot 的应用程序。一切正常,但是由于雪花中的一些疯狂默认值,我不得不处理以下错误: https://community.snowflake.com/s/article/SAP-BW-Java-lang-NoClassDefFoundError-for-Apache-arrow

我可以通过 Spring data JPA 触发查询,但根本无法映射结果。该解决方案要求将默认结果集格式从 ARROW 更改为 JSON:

Customer can use this property (jdbc_query_result_format=json) in datasouce property of Application server or session property in application like

Statement = connection.createStatement();
Statement.executeQuery("ALTER SESSION SET JDBC_QUERY_RESULT_FORMAT='JSON'");

我只是想知道如何使用 Spring ie 来实现这一点。在引导期间运行上述 SQL。我正在使用 Spring data JPA 查询。

最佳答案

参数 JDBC_QUERY_RESULT_FORMAT 可以针对每个帐户/用户/ session 进行设置,因此,如果您始终希望为该用户提供 JSON,则只能通过 Snowflake UI 直接设置它一次:

ALTER USER <youruser> SET JDBC_QUERY_RESULT_FORMAT='JSON';

这只会影响您的用户,并且该帐户仍将默认使用 ARROW。而且您不需要一直在 session 级别设置它。

关于java - Spring boot - Snowflake JDBC - 应用程序加载时自动更改 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71487403/

相关文章:

spring-boot - Java + Cloudflare + 相互认证

java - 如何检查字符串在 Guava 中是否只有字母数字字符?

java - 带工具栏和菜单栏的网格包布局

java - 使用 java config 配置的自定义 spring 数据 (mongo) 存储库的 Autowiring 如何工作?

java - cucumber 步 Spring Bean

java - 覆盖 spring-boot EurekaInstanceConfigBean

spring - 重新加载静态内容 Spring Boot 应用程序

java - testcontainers, hikari 和 Failed to validate connection org.postgresql.jdbc.PgConnection

Java Web 应用程序 - 应用程序启动时加载库

java - 在 Java Jersey RESTful Web 应用程序中加载属性文件,以在整个应用程序中持续存在?