如何在 Hibernate 中发送所有一个请求? (优质语言)

How to send it all one request in Hibernate ? (HQL)

getSession()
            .createQuery(
                    "UPDATE Friend SET status = :status, actionUserId = :userId, lastModifyDate = :lastModifyDate WHERE userId = :userId AND friendId = :idUserFriend")
            .setParameter("status", Integer.valueOf(InviteFriendState.CANCEL.getState()))
            .setParameter("userId", userId).setParameter("idUserFriend", idUserFriend)
            .setParameter("lastModifyDate", new Date()).executeUpdate();
}getSession()
            .createQuery(
                    "UPDATE Friend SET status = :status, actionUserId = :userId, lastModifyDate = :lastModifyDate WHERE userId = :idUserFriend AND friendId = :userId ")
            .setParameter("status", Integer.valueOf(InviteFriendState.CANCEL.getState()))
            .setParameter("userId", userId).setParameter("idUserFriend", idUserFriend)
            .setParameter("lastModifyDate", new Date()).executeUpdate();
}`

如何在 Hibernate 中发送一个请求? (HQL)

如何合并请求?

为什么要做两个请求?
您可以通过添加 OR 条件对单个查询执行相同的操作:

getSession()
            .createQuery(
                    "UPDATE Friend SET status = :status, actionUserId = :userId, lastModifyDate = :lastModifyDate 
              WHERE (userId = :userId AND friendId = :idUserFriend)
              ||    (userId = :idUserFriend AND friendId = :userId)  ")
            .setParameter("status", Integer.valueOf(InviteFriendState.CANCEL.getState()))
            .setParameter("userId", userId).setParameter("idUserFriend", idUserFriend)
            .setParameter("lastModifyDate", new Date()).executeUpdate();
}