1 package org.myorg.jpatickets.dao; 2 3 import java.util.List; 4 5 import javax.persistence.EntityManager; 6 import javax.persistence.FlushModeType; 7 import javax.persistence.TypedQuery; 8 9 import org.myorg.jpatickets.bo.Seat; 10 import org.myorg.jpatickets.bo.Venue; 11 12 public class VenueDAOImpl implements VenueDAO { 13 private EntityManager em; 14 15 public void setEntityManager(EntityManager em) { 16 this.em = em; 17 } 18 19 @Override 20 public void saveVenue(Venue venue, List<Seat> seats) { 21 em.setFlushMode(FlushModeType.COMMIT); 22 em.persist(venue); 23 if (seats!=null) { 24 for (Seat s: seats) { 25 em.persist(s); 26 } 27 } 28 em.setFlushMode(FlushModeType.AUTO); 29 } 30 31 public Venue getVenue(String venueId) { 32 return em.find(Venue.class, venueId); 33 } 34 35 @Override 36 public List<Seat> getSeatsForVenue(Venue venue, int offset, int limit) { 37 TypedQuery<Seat> query = em.createNamedQuery("JPATicketSeat.getSeatsForVenue", 38 Seat.class) 39 .setParameter("venue", venue); 40 if (offset > 0) { query.setFirstResult(offset); } 41 if (limit > 0) { query.setMaxResults(limit); } 42 return query.getResultList(); 43 } 44 }