EJBQL / HQL中命名参数列表的列表

时间:2010-01-25 17:52:54

标签: mysql hibernate orm jpa hql

我正在尝试在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查询计划缓存中并占用大量的堆空间。所以我想知道是否可以参数化这个查询,以便它只在查询计划缓存中存储一​​次。

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

查看文档的Hibernate batch inserts部分。