0

我有以下方法从数据库表中提取数据

    public User getNextUser() {
            final EntityManager em = getEntityManagerFactory().createEntityManager();

            final String sql = "UPDATE user " +
                    "SET processing = TRUE " +
                    "WHERE id = (" +
                                "SELECT id " +
                                "FROM user  " +
                                "WHERE processing = FALSE " +
                                "LIMIT 1 FOR UPDATE) " +
                    "RETURNING *";

            final Query query =  em.createNativeQuery(sql, User.class);
            User result = null;

            try {
                List userList = query.getResultList();
                if (!userList.isEmpty()) {
                    result = (User) userList.get(0);
                }
            } finally {
                em.close();
            }
            return result;
}

如何将此本机查询转换为 Hibernate 查询(不使二级缓存无效)?我读过相当于

选择 ... 更新

在 Hibernate 中,可以通过

PESSIMISTIC_WRITE

4

0 回答 0