mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
rewrote query with criteria api
This commit is contained in:
@@ -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<User> {
|
||||
PasswordEncryptionService encryptionService;
|
||||
|
||||
public User findByName(String name) {
|
||||
TypedQuery<User> query = em.createNamedQuery("User.byName", User.class);
|
||||
query.setParameter("name", name.toLowerCase());
|
||||
|
||||
CriteriaQuery<User> query = builder.createQuery(getType());
|
||||
Root<User> root = query.from(getType());
|
||||
query.where(builder.equal(builder.lower(root.get(User_.name)),
|
||||
name.toLowerCase()));
|
||||
TypedQuery<User> q = em.createQuery(query);
|
||||
|
||||
User user = null;
|
||||
try {
|
||||
user = query.getSingleResult();
|
||||
user = q.getSingleResult();
|
||||
} catch (NoResultException e) {
|
||||
user = null;
|
||||
}
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
http://java.sun.com/xml/ns/persistence/orm
|
||||
http://java.sun.com/xml/ns/persistence/orm_2_0.xsd">
|
||||
|
||||
<named-query name="User.byName">
|
||||
<query>select u FROM User u WHERE lower(u.name)=:name</query>
|
||||
</named-query>
|
||||
|
||||
<named-query name="EntryStatus.unreadCounts">
|
||||
<query>select s.subscription.id, count(s) from FeedEntryStatus s where s.subscription.user=:user and s.read=false group by s.subscription.id</query>
|
||||
</named-query>
|
||||
|
||||
Reference in New Issue
Block a user