【问题标题】:List of list of named parameters in EJBQL/HQLEJBQL/HQL 中的命名参数列表
【发布时间】:2011-01-09 05:06:38
【问题描述】:

我正在尝试在 MySQL+JBoss+Hibernate 应用程序中执行长达几千行的 'INSERT ON DUPLICATE KEY UPDATE'。它看起来像:

INSERT INTO Table (field1, field2, field3) VALUES
(value1_1, value2_1, value3_1),
(value1_2, value2_2, value3_2),
(value1_3, value2_3, value3_3),
...
ON DUPLICATE KEY UPDATE ...

这作为一个本地查询工作得很好,我在循环中构建查询字符串,但是长查询字符串本身保留在 Hibernate 查询计划缓存中并占用大量堆空间。所以我想知道是否可以参数化这个查询,以便它在查询计划缓存中只存储一次。

有没有办法像这样参数化元组列表?理想情况下,我可以在setParameter() 中传递{ value1, value2, value3 } 集合的集合。使用 (:value1, :value2, :value3) 运行数千个单行更新很容易,但这会带来显着的 (2-3 倍) 性能成本。

提前致谢。

【问题讨论】:

    标签: mysql hibernate orm jpa hql


    【解决方案1】:

    查看文档的Hibernate batch inserts 部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 2012-10-02
      • 2018-03-10
      相关资源
      最近更新 更多