JPA2.1批量更新不适用于hibernate

JPA2.1批量更新不适用于hibernate,hibernate,jpa,eclipselink,Hibernate,Jpa,Eclipselink,JPA 2.1批量更新与Eclipselink的预期效果相同,但与hibernate的效果不同,代码如下: CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaUpdate<Assignment> cu = cb.createCriteriaUpdate(Assignment.class); Root<Assignment> assignment = cu.from(Assignment.class); Path&l

JPA 2.1批量更新与Eclipselink的预期效果相同,但与hibernate的效果不同,代码如下:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaUpdate<Assignment> cu = cb.createCriteriaUpdate(Assignment.class);
Root<Assignment> assignment = cu.from(Assignment.class);
Path<Assignment> parent = assignment.get(Assignment_.parent);
Path<BooleanWrapper> assignmentDeleted = assignment.get(Assignment_.deleted);
Path<BooleanWrapper> parentDeleted = parent.get(Assignment_.deleted);
Predicate assignmentDeletedIsFalse = cb.equal(assignmentDeleted, BooleanWrapper.F);
Predicate parentDeletedIsTrue = cb.equal(parentDeleted, BooleanWrapper.T);
cu.set(assignmentDeleted, BooleanWrapper.T);
cu.where(cb.and(assignmentDeletedIsFalse, parentDeletedIsTrue));
return em.createQuery(cu).executeUpdate();

BooleanWrapper只是一个值为T和F的枚举,映射为Enumerated.STRING以模拟boolean.java.sql.SQLSyntaxErrorException:ORA-00971:缺少SET关键字。这是数据库的输出。