简体   繁体   中英

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();
}`

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

How to combine a request?

Why doing two requests ?
You can do the same thing with a single query by adding an OR condition :

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();
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM