我想用 JPA
和 Postgres 执行批量更新插入。我无法使用合并,因为我正在检查非 PK 的唯一约束上的冲突。我发现要在 postgres 中更新插入,我们现在可以使用 ON Conflict 功能。所以基本上我想在 JPA
中执行 native 查询。查询就像:
INSERT INTO user (user_id, display_name )
VALUES('1', 'sg27')
ON CONFLICT (user_id) DO UPDATE
SET display_name = 'sg27' RETURNING *;
我将遍历对象列表并进行查询。
所以我的问题是在 native 查询插入的情况下,我们可以使用像 em.flush()
这样的手动刷新。它是否适用于批量插入。
如果没有,那么有人可以告诉我这个问题的可能解决方案是什么吗?
感谢您的宝贵时间。
最佳答案
在 Hibernate JPA 中使用 native 查询与您的普通 Hibernate 查询相同,只是它特定于下划线数据存储。您可以进行批量更新插入,也可以进行手动冲洗。根据您的批量大小。没问题。
关于hibernate - 使用 native 查询的 JPA(Hibernate) 和 postgresql 批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33910075/