aboutsummaryrefslogtreecommitdiff
path: root/juick-server-jdbc/src/main
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2017-12-19 15:44:50 +0300
committerGravatar Vitaly Takmazov2017-12-19 15:44:50 +0300
commiteab80ba585ae61a3ddef7a785a87ead7f39e9efe (patch)
tree6cf2a06d35184a490c6f768cb8a10c89d3ff43e0 /juick-server-jdbc/src/main
parent720dbdbfcd0d9561bc55deafa2c1c1563d942001 (diff)
jdbc: do not delete last jid
Diffstat (limited to 'juick-server-jdbc/src/main')
-rw-r--r--juick-server-jdbc/src/main/java/com/juick/service/UserServiceImpl.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/juick-server-jdbc/src/main/java/com/juick/service/UserServiceImpl.java b/juick-server-jdbc/src/main/java/com/juick/service/UserServiceImpl.java
index b8835c7f..6196af86 100644
--- a/juick-server-jdbc/src/main/java/com/juick/service/UserServiceImpl.java
+++ b/juick-server-jdbc/src/main/java/com/juick/service/UserServiceImpl.java
@@ -703,7 +703,12 @@ public class UserServiceImpl extends BaseJdbcService implements UserService {
@Transactional
@Override
public boolean deleteJID(int uid, String jid) {
- return getJdbcTemplate().update("DELETE FROM jids WHERE user_id=? AND jid=?", uid, jid) > 0;
+ return getNamedParameterJdbcTemplate().update("DELETE FROM jids " +
+ "WHERE (SELECT COUNT(*) cnt FROM (select user_id, jid FROM jids j) c WHERE user_id=:uid) > 1 " +
+ "AND user_id=:uid AND jid=:jid",
+ new MapSqlParameterSource()
+ .addValue("uid", uid)
+ .addValue("jid", jid)) > 0;
}
@Transactional