如何使用 DAO 插入雪花变体字段?

2024-01-12

我有以下代码:

@RegisterMapper(MyEntity.ResultMapper.class)
@UseStringTemplate3StatementLocator
public interface MyDao {

    @Transaction(TransactionIsolationLevel.SERIALIZABLE)
    @SqlBatch("INSERT INTO mySchema.myTable (" +
        " id, entity_type, entity_id, flags " +
        " ) VALUES " +
        "(" +
        " :stepId , :entityType , :entityId,parse_json(:flags) " +
        ")")
    @BatchChunkSize(500)
    Object create( @BindBean List<MyEntity> entities );
}

正如您所看到的,我使用此 DAO 将实体列表批量插入到我的 Snowflake 表中。

问题是我无法插入标志列,这是一个变体。我努力了to_variant(:flags)目前parse_json(:flags),但是JDBI一直抛出以下错误:

net.snowflake.client.jdbc.SnowflakeSQLException: SQL 
compilation error:
Invalid expression [PARSE_JSON(?)] in VALUES clause 
[statement:"INSERT INTO mySchema.myTable ( id, entity_type, 
entity_id, flags  ) VALUES ( :stepId , :entityType , :entityId,
parse_json(:flags) )", located:"null", rewritten:"null",
arguments:{ positional:{}, named:{timeStamp:'null', 
entityType:MYENTITY,
flags:'{"client":"myClient","flow":"myFlow"}',stepId:null, 
entityId:'189643357241513', class:class myOrg.MyEntity}, finder:[]}]

我应该如何传递标志列中的值?以前有人尝试过吗?这flagsMyEntity 中的字段在我的控制范围内,我可以将其保留为 POJO 或字符串,以帮助我解决此问题。


See 评论 https://stackoverflow.com/questions/56784193/how-to-insert-into-a-snowflake-variant-field-using-a-dao/58513714#comment100177963_56784193黄健生的回答:

INSERT INTO T SELECT parse_json(:flag);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 DAO 插入雪花变体字段? 的相关文章

  • CASE 语句未正确定义列雪花

    我有一个以下格式的查询 用于执行COALESCE以及使用定义一个新列CASE陈述 SELECT COALESCE mm1 missing AS mm1 COALESCE mm2 missing AS mm2 CASE WHEN mm1 fa
  • Snowflake Python Pandas 连接器 - 使用 fetch_pandas_all 时出现未知错误

    我正在尝试使用 python pandas 连接器连接到雪花 我在 Windows 上使用 anaconda 发行版 但卸载了现有的连接器和 pyarrow 并使用此页面上的说明重新安装 https docs snowflake com e
  • Android Room嵌入关系忽略SQL where条件

    我是一个 SQL 菜鸟 不明白为什么我的语句会这样 它在 Android Room DAO 中使用并返回不需要的结果 I have this sample data in two tables 我有这样的声明 Transaction Que
  • 如何将 rst.FindFirst 与 rst.NoMatch 一起使用?

    我的代码除了这一行之外都有效 FindFirst DONOR CONTACT ID strTemp2 我希望我的代码检查是否存在一条记录 其中存在特定的 DONOR CONTACT ID 因为存在多个具有相同 DONOR CONTACT I
  • 雪花 - 横向不能位于连接的左侧

    我有一个变体数据类型 我正在对其执行横向展平 但随后我需要左连接其中一个 json 元素 以从 Snowflake 中的另一个关系表中查找相应 ID 的值 当我这样做时 它会给我错误 横向视图不能位于连接的左侧 这是没有意义的 因为如果我不
  • 将参数从 SSRS 数据集传递到 Snowflake

    有没有办法将参数从 SSRS 数据集传递到 Snowflake 以前我将 SSRS 连接到 SqlServer DB 并将参数作为 client id 传递 我想将查询移动到在 Snowflake 上运行 但我不知道如何传递参数来查询 当我
  • 当只有 1 个实例时,Snowflake XML 解析不适​​用于嵌套结构

    我们在 Snowflake 中有一个名为 portfolio 的临时表 其中有一个名为 cdc xml 的 Variant 列 用于存储 Snowpipe 通过 S3 加载的 XML 文档 XML 看起来像
  • 雪花不旋转

    我需要转置一个表 其中column1 是实体的名称 column2 到column366 是一年中包含美元金额的日期 表 select语句 输出结果都给定了 以下 问题 此语法要求我创建一个逗号分隔的列列表 基本上是 365 个日期 并在
  • 注入 DAO 的 @Transactional 的 Spring WS 拦截器不起作用

    我们有一个基于 XML 的传统配置 spring ws 应用程序 其中包含端点拦截器 这些端点拦截器已注入 DAO 以从数据库获取配置 这些 DAO 注入了 hibernate sessionFactory 当我们升级到 spring 4
  • 将一行复制一定次数,然后每次将 30 分钟添加到时间戳(就像序列一样)

    样本数据 ID Location Type Trip End Number of periods 1298 Residential 02 01 2022 05 30 48 1298 Residential 03 01 2022 05 30
  • 使用 DAO 进行事务管理

    在我的 Java 应用程序的 DAO 层中 我有两个 DAO 类EmployeeDAO and BankDAO 我需要控制 处理他们的数据库事务 我使用连接池来获取数据库连接 EmployeeDAO 类 public class Emplo
  • 雪花中有保存或加载工作表的选项吗?

    雪花中有保存或加载工作表的选项吗 或者将工作表下载到本地并从本地加载 我的意思不是通过剪贴板将其粘贴到某些文本编辑器并保存这样的选项 Snowflake 会自动保存您的工作表 您还可以将脚本从本地加载到工作表 但是无法下载工作表 Saved
  • 如何获取雪花中表的上次访问时间戳?

    我想获取雪花中表的上次访问时间戳 并不总是理想的 但对于一次性问题找到此问题的一种快速方法是使用 QUERY HISTORY SELECT START TIME FROM TABLE INFORMATION SCHEMA QUERY HIS
  • Hibernate:CRUD 通用 DAO

    我的网络应用程序有很多服务表 实体 例如payment methods tax codes province codes etc 每次添加一个新实体时 我都必须编写一个 DAO 问题是 基本上 它们都是相同的 但唯一的区别是实体类本身 我知
  • 如何检查 VBA DAO 记录集中是否为空?

    我在数据库中有一个可选字段 我正在使用 DAO 记录集提取该字段 在将字段与其他字段连接之前 我需要检查该字段是否已设置 到目前为止 我已经尝试过以下代码片段Is and 这是明显错误的语法 Is 无济于事 看来如果我使用 它不会正确地与N
  • Spring 会话范围的 bean 作为原型 bean 中的依赖项?

    我多次阅读了有关这个主题的 spring 文档 但有些事情我仍然不清楚 文件指出 例如 如果要将 HTTP 请求作用域 bean 注入到另一个 bean 中 则必须注入 AOP 代理来代替该作用域 bean 也就是说 您需要注入一个代理对象
  • 无法使用 Python 连接器和外部浏览器身份验证器连接到 Snowflake

    我正在尝试使用 Python 连接器和 SSO 连接到 Snowflake 我希望连接器打开浏览器来验证用户身份 但这不起作用 h Code bin gt python conn py Initiating login request wi
  • 每个“容器”类一个 DAO 还是每个表一个 DAO?

    我有一个 容器 类 其中的字段包含在多个数据库表中 并且我使用 DAO 模式来访问数据 问题是 我应该为这个 容器 类创建一个 DAO 还是每个表都有一个 DAO 并合并它们的数据更好 您应该根据应用程序的需求而不是数据库的布局来设计 DA
  • Snowflake - VALUES 子句中的操作 - 表达式无效

    我们如何在 Snowflake 的 VALUES 子句中获得有理数 SELECT FROM VALUES 1 3 0 2 AS t 返回 SQL 编译错误 VALUES 子句中的表达式 1 3 无效 这是非常奇特的 可以被定性为一个错误 任
  • getDeclaredConstructors0(boolean) - 在调试模式下 tomcat 启动期间该行不可用

    我的 spring 管理的 tomcat 应用程序遇到了一些问题 有一个UserDao 负责一些User数据库操作 如果我启动 tomcat 我会收到以下消息 Thread pool 2 thread 1 Class load UserDa

随机推荐