update users as u set -- postgres FTW
email = u2.email,
first_name = u2.first_name,
last_name = u2.last_name
from (values
(1, '[email protected] /cdn-cgi/l/email-protection', 'Hollis', 'O\'Connell'),
(2, '[email protected] /cdn-cgi/l/email-protection', 'Robert', 'Duncan')
) as u2(id, email, first_name, last_name)
where u2.id = u.id;
上面的查询用于更新一个查询中的多行,它的工作效率也很高,但我有下面的 JSON:
Person:{[id:1,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"John",last_name:"Doe"],[id:2,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"Robert",last_name:"Duncan"],[id:3,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"Ram",last_name:"Das"],[id:4,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"Albert",last_name:"Pinto"],[id:5,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"Robert",last_name:"Peter"],[id:6,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"Christian",last_name:"Lint"],[id:7,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"Mike",last_name:"Hussey"],[id:8,email:"[[email protected] /cdn-cgi/l/email-protection]",first_name:"Ralph",last_name:"Hunter"]};
这样的 JSON 有 1000 条数据,我想使用 JPA 将其插入数据库中。目前我已经通过迭代插入它,这使得我的代码变慢,是否有任何其他可以实现的替代方案。
任何帮助将不胜感激。
这是我的Java代码:
public Boolean multiEditPerson(List<PersonList> personList) {
for (PersonList list : personList) {
Person personMstr = em.find(Person.class, list.getId());
personMstr.setFirstName(list.getFirstName());
personMstr.setLastName(list.getLastName());
personMstr.setEmail(Arrays.toString(list.getEmail()));
em.persist(personMstr);
}
return Boolean.TRUE;
}