1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstarts.greeter.domain;
18
19 import javax.inject.Inject;
20 import javax.persistence.EntityManager;
21 import javax.persistence.NoResultException;
22 import javax.persistence.Query;
23 import javax.transaction.SystemException;
24 import javax.transaction.UserTransaction;
25
26 public class ManagedBeanUserDao implements UserDao {
27
28 @Inject
29 private EntityManager entityManager;
30
31 @Inject
32 private UserTransaction utx;
33
34 public User getForUsername(String username) {
35 try {
36 User user;
37 try {
38 utx.begin();
39 Query query = entityManager.createQuery("select u from User u where u.username = :username");
40 query.setParameter("username", username);
41 user = (User) query.getSingleResult();
42 } catch (NoResultException e) {
43 user = null;
44 }
45 utx.commit();
46 return user;
47 } catch (Exception e) {
48 try {
49 utx.rollback();
50 } catch (SystemException se) {
51 throw new RuntimeException(se);
52 }
53 throw new RuntimeException(e);
54 }
55 }
56
57 public void createUser(User user) {
58 try {
59 try {
60 utx.begin();
61 entityManager.persist(user);
62 } finally {
63 utx.commit();
64 }
65 } catch (Exception e) {
66 try {
67 utx.rollback();
68 } catch (SystemException se) {
69 throw new RuntimeException(se);
70 }
71 throw new RuntimeException(e);
72 }
73 }
74 }