我希望使用JPA
和Postgres进行批量upsert。因为我正在检查不是PK的唯一约束冲突,所以无法使用merge。我发现在postgres中可以使用ON Conflict功能来upsert。所以基本上我想在JPA
中执行原生查询。查询将类似于:
INSERT INTO user (user_id, display_name )
VALUES('1', 'sg27')
ON CONFLICT (user_id) DO UPDATE
SET display_name = 'sg27' RETURNING *;
我将循环遍历对象列表并进行查询。
因此,我的问题是,在本地查询插入的情况下,我们是否可以使用手动刷新
em.flush()
。它适用于批量插入吗?如果不行,那么有人可以告诉我如何解决这个问题吗?
感谢您的时间。