From b459975522d37bbda97802c054e6257eb211d5cc Mon Sep 17 00:00:00 2001 From: Athou Date: Fri, 12 Apr 2013 10:29:34 +0200 Subject: [PATCH] rewrote query with criteria api --- .../java/com/commafeed/backend/dao/UserDAO.java | 13 ++++++++++--- src/main/resources/META-INF/orm.xml | 4 ---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/commafeed/backend/dao/UserDAO.java b/src/main/java/com/commafeed/backend/dao/UserDAO.java index 8a765734..16605816 100644 --- a/src/main/java/com/commafeed/backend/dao/UserDAO.java +++ b/src/main/java/com/commafeed/backend/dao/UserDAO.java @@ -4,8 +4,11 @@ import javax.ejb.Stateless; import javax.inject.Inject; import javax.persistence.NoResultException; import javax.persistence.TypedQuery; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; import com.commafeed.backend.model.User; +import com.commafeed.backend.model.User_; import com.commafeed.backend.services.PasswordEncryptionService; @Stateless @@ -16,12 +19,16 @@ public class UserDAO extends GenericDAO { PasswordEncryptionService encryptionService; public User findByName(String name) { - TypedQuery query = em.createNamedQuery("User.byName", User.class); - query.setParameter("name", name.toLowerCase()); + + CriteriaQuery query = builder.createQuery(getType()); + Root root = query.from(getType()); + query.where(builder.equal(builder.lower(root.get(User_.name)), + name.toLowerCase())); + TypedQuery q = em.createQuery(query); User user = null; try { - user = query.getSingleResult(); + user = q.getSingleResult(); } catch (NoResultException e) { user = null; } diff --git a/src/main/resources/META-INF/orm.xml b/src/main/resources/META-INF/orm.xml index be8f7306..8959c942 100644 --- a/src/main/resources/META-INF/orm.xml +++ b/src/main/resources/META-INF/orm.xml @@ -5,10 +5,6 @@ http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"> - - select u FROM User u WHERE lower(u.name)=:name - - select s.subscription.id, count(s) from FeedEntryStatus s where s.subscription.user=:user and s.read=false group by s.subscription.id