View Javadoc
1   package ejava.jpa.examples.query;
2   
3   import java.math.BigDecimal;
4   import java.util.Calendar;
5   import java.util.Collection;
6   import java.util.GregorianCalendar;
7   import javax.persistence.EntityManager;
8   
9   public class SalesFactory {
10  	private EntityManager em;
11  	
12  	public SalesFactory setEntityManager(EntityManager em) {
13  		this.em = em;
14  		return this;
15  	}
16  	
17      protected void populate() {
18          Store store = new Store().setName("Big Al's");
19          em.persist(store);
20  
21          Clerk manny = new Clerk()
22          	.setFirstName("Manny")
23          	.setLastName("Pep")
24          	.setHireDate(new GregorianCalendar(1970,Calendar.JANUARY, 1).getTime());
25  
26          Clerk moe = new Clerk()
27          	.setFirstName("Moe")
28          	.setLastName("Pep")
29          	.setHireDate(new GregorianCalendar(1970,Calendar.JANUARY, 1).getTime());
30  
31          Clerk jack = new Clerk()
32          	.setFirstName("Jack")
33          	.setLastName("Pep")
34          	.setHireDate(new GregorianCalendar(1973,Calendar.MARCH, 1).getTime());
35  
36          em.persist(manny);
37          em.persist(moe);
38          em.persist(jack);
39          
40          Customer cat = new Customer()
41          	.setFirstName("cat")
42              .setLastName("inhat");
43          
44          Customer one = new Customer()
45          	.setFirstName("thing")
46          	.setLastName("one");
47          
48          Customer two = new Customer()
49          	.setFirstName("thing")
50          	.setLastName("two");
51          
52          em.persist(cat);
53          em.persist(one);
54          em.persist(two);
55          
56          Sale sale1 = new Sale();
57          sale1.setAmount(new BigDecimal(100.00))
58          	.setDate(new GregorianCalendar(1998,03,10,10, 13, 35).getTime())
59          	.setStore(store)
60          	.setBuyerId(cat.getId())
61          	.addClerk(manny);
62          manny.addSale(sale1);
63          store.addSale(sale1);
64          
65          Sale sale2 = new Sale()
66          	.setAmount(new BigDecimal(150.00))
67          	.setDate(new GregorianCalendar(1999,05,11,14, 15, 10).getTime())
68          	.setStore(store)
69          	.setBuyerId(one.getId())
70          	.addClerk(manny, moe);
71          manny.addSale(sale2);
72          moe.addSale(sale2);
73          store.addSale(sale2);
74          
75          em.persist(sale1);
76          em.persist(sale2);
77      }
78  
79  	public void cleanup() {
80          //Store has cascade=DELETE to Sale
81          Collection<Store> stores = 
82              em.createQuery("select s from Store s", Store.class).getResultList();
83          for(Store s : stores) {
84              em.remove(s);
85          }
86          em.createQuery("delete from Customer c").executeUpdate();
87          em.createQuery("delete from Clerk c").executeUpdate();        
88  	}
89  }