package kickr.db.dao; import io.dropwizard.hibernate.AbstractDAO; import kickr.db.entity.user.AccessToken; import kickr.db.entity.user.User; import org.hibernate.CacheMode; import org.hibernate.SessionFactory; /** * * @author nikku */ public class AccessTokenDAO extends AbstractDAO<AccessToken> { public AccessTokenDAO(SessionFactory sessionFactory) { super(sessionFactory); } public void remove(AccessToken accessToken) { currentSession().delete(accessToken); } public void create(AccessToken accessToken) { currentSession().persist(accessToken); } public AccessToken get(String tokenValue) { return (AccessToken) currentSession() .getNamedQuery("AccessToken.byValue") .setParameter("value", tokenValue) .setCacheable(true) .uniqueResult(); } public int removeByUser(User user) { return currentSession() .createQuery("DELETE FROM AccessToken a WHERE a.user = :user") .setParameter("user", user) .executeUpdate(); } public int removeByToken(User user, String token) { return currentSession() .createQuery("DELETE FROM AccessToken a WHERE a.user = :user AND a.value = :token") .setParameter("user", user) .setParameter("token", token) .executeUpdate(); } }