1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstart.hibernate3.data;
18
19 import org.hibernate.Criteria;
20 import org.hibernate.Session;
21 import org.hibernate.criterion.Order;
22 import org.jboss.as.quickstart.hibernate3.model.Member;
23
24 import java.util.List;
25
26 import javax.annotation.PostConstruct;
27 import javax.enterprise.context.RequestScoped;
28 import javax.enterprise.event.Observes;
29 import javax.enterprise.event.Reception;
30 import javax.enterprise.inject.Produces;
31 import javax.inject.Inject;
32 import javax.inject.Named;
33 import javax.persistence.EntityManager;
34
35
36
37
38
39 @RequestScoped
40 public class MemberListProducer {
41 @Inject
42 private EntityManager em;
43
44 private List<Member> members;
45
46
47
48 @Produces
49 @Named
50 public List<Member> getMembers() {
51 return members;
52 }
53
54 public void onMemberListChanged(@Observes(notifyObserver = Reception.IF_EXISTS) final Member member) {
55 retrieveAllMembersOrderedByName();
56 }
57
58 @SuppressWarnings("unchecked")
59 @PostConstruct
60 public void retrieveAllMembersOrderedByName() {
61
62
63 Session session = (Session) em.getDelegate();
64 Criteria cb = session.createCriteria(Member.class);
65 cb.addOrder(Order.asc("name"));
66 members = (List<Member>) cb.list();
67
68 }
69 }