forked from Archives/Athou_commafeed
rewrote query with criteria api
This commit is contained in:
@@ -4,8 +4,11 @@ import javax.ejb.Stateless;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.persistence.NoResultException;
|
import javax.persistence.NoResultException;
|
||||||
import javax.persistence.TypedQuery;
|
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.model.User_;
|
||||||
import com.commafeed.backend.services.PasswordEncryptionService;
|
import com.commafeed.backend.services.PasswordEncryptionService;
|
||||||
|
|
||||||
@Stateless
|
@Stateless
|
||||||
@@ -16,12 +19,16 @@ public class UserDAO extends GenericDAO<User> {
|
|||||||
PasswordEncryptionService encryptionService;
|
PasswordEncryptionService encryptionService;
|
||||||
|
|
||||||
public User findByName(String name) {
|
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;
|
User user = null;
|
||||||
try {
|
try {
|
||||||
user = query.getSingleResult();
|
user = q.getSingleResult();
|
||||||
} catch (NoResultException e) {
|
} catch (NoResultException e) {
|
||||||
user = null;
|
user = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,6 @@
|
|||||||
http://java.sun.com/xml/ns/persistence/orm
|
http://java.sun.com/xml/ns/persistence/orm
|
||||||
http://java.sun.com/xml/ns/persistence/orm_2_0.xsd">
|
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">
|
<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>
|
<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>
|
</named-query>
|
||||||
|
|||||||
Reference in New Issue
Block a user