From 1e3a0754a40a37731f82fbe67ff5ed36aa802022 Mon Sep 17 00:00:00 2001 From: Sola Date: Sat, 26 Dec 2015 15:30:36 +0800 Subject: [PATCH] fixed issue 'returned null for key' --- src/main/java/love/sola/netsupport/sql/TableUser.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/love/sola/netsupport/sql/TableUser.java b/src/main/java/love/sola/netsupport/sql/TableUser.java index da02813..f370052 100644 --- a/src/main/java/love/sola/netsupport/sql/TableUser.java +++ b/src/main/java/love/sola/netsupport/sql/TableUser.java @@ -43,7 +43,8 @@ public class TableUser extends SQLCore { public static User getByWechat(String wechat) { try { - return cache.get(wechat); + User u = cache.get(wechat); + return u == NULL_USER ? null : u; } catch (ExecutionException e) { e.printStackTrace(); return null; @@ -55,6 +56,7 @@ public class TableUser extends SQLCore { s.beginTransaction(); s.update(user); s.getTransaction().commit(); + cache.put(user.getWechatId(), user); return 1; } } @@ -76,10 +78,13 @@ public class TableUser extends SQLCore { private static class ValueLoader extends CacheLoader { @Override public User load(String key) throws Exception { - return TableUser.getByWechat0(key); + User u = TableUser.getByWechat0(key); + return u == null ? NULL_USER : u; } } + private static final User NULL_USER = new User(); + private static User getByWechat0(String wechat) { try (Session s = sf.openSession()) { return (User) s.createCriteria(User.class).add(Restrictions.eq(User.PROPERTY_WECHAT, wechat)).uniqueResult();