1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstarts.kitchensink.data;
18
19 import javax.enterprise.context.ApplicationScoped;
20 import javax.inject.Inject;
21 import javax.persistence.EntityManager;
22 import javax.persistence.criteria.CriteriaBuilder;
23 import javax.persistence.criteria.CriteriaQuery;
24 import javax.persistence.criteria.Root;
25 import java.util.List;
26
27 import org.jboss.as.quickstarts.kitchensink.model.Member;
28
29 @ApplicationScoped
30 public class MemberRepository {
31
32 @Inject
33 private EntityManager em;
34
35 public Member findById(Long id) {
36 return em.find(Member.class, id);
37 }
38
39 public Member findByEmail(String email) {
40 CriteriaBuilder cb = em.getCriteriaBuilder();
41 CriteriaQuery<Member> criteria = cb.createQuery(Member.class);
42 Root<Member> member = criteria.from(Member.class);
43
44
45
46 criteria.select(member).where(cb.equal(member.get("email"), email));
47 return em.createQuery(criteria).getSingleResult();
48 }
49
50 public List<Member> findAllOrderedByName() {
51 CriteriaBuilder cb = em.getCriteriaBuilder();
52 CriteriaQuery<Member> criteria = cb.createQuery(Member.class);
53 Root<Member> member = criteria.from(Member.class);
54
55
56
57 criteria.select(member).orderBy(cb.asc(member.get("name")));
58 return em.createQuery(criteria).getResultList();
59 }
60 }