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