StringBuffer sb = new StringBuffer();
sb.append(" UPDATE TABLE p1 SET p1.NUMBER = (");
sb.append(" SELECT V.NUMBER FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY p.PID ORDER BY ID ASC ) NUMBER , p.ID FROM TABLE p) V");
sb.append(" WHERE V.ID = p1.ID) WHERE EXISTS ( SELECT p.PID, p.ID, ROW_NUMBER() OVER (PARTITION BY p.PID ORDER BY ID ASC ) NUMBER FROM TABLE p");
sb.append(" WHERE p.ID = p1.ID) AND PID = :PID ; COMMIT;");
Query query = this.getEntityManager().createNativeQuery(sb.toString());
query.setParameter("PID", id);
int num = query.executeUpdate();
System.out.println("==================================sql执行完毕 Test=======受影响的行数为:" + num);