JPA批量更新无法正常工作

时间:2017-05-15 13:45:48

标签: java postgresql jpa

我需要在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>

0 个答案:

没有答案