我需要在JPA中使用id进行批量更新。 我已经尝试在Postgres中使用以下查询并且工作正常:
update DUMMY set dlr='1' and time='2017-05-15 10:00:00' IN ids ('30c7a7cc-e807-4f0a-bbc9-baee8ad91ec7','ae1e6e47-839f-4858-baa2-6b142815a236','c9d44b84-a8e7-4c57-a498-df2f96752049','8f858543-c28a-414b-9eb9-70e35bbbde66','dda28cc5-1024-4986-85c6-822d9173e09e');
在上面的查询中,我正在更新数组中具有id的记录,并设置dlr和time。
我正在通过JPA尝试相同的查询:
queryStm = "Update DUMMY set dlr=:dlr,time=:time,serverTime=:servertime where id IN :arrids ";
Query query = em.createNativeQuery(queryStm);
query.setParameter("arrids ",arrids );
query.setParameter("dlr", dlr);
query.setParameter("time", time);
query.setParameter("servertime", new Timestamp(new Date().getTime()));
query.executeUpdate();
该数组有100个id,但它只更新了20到30条记录。
我的方式是否有问题。
我正在使用Postgres 9.6.2版本并使用以下依赖项
<dependency>
<groupId>javax.ejb</groupId>
<artifactId>javax.ejb-api</artifactId>
<version>3.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.3.Final</version>
</dependency>