VenueDAOImpl.java
package org.myorg.jpatickets.dao;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.FlushModeType;
import javax.persistence.TypedQuery;
import org.myorg.jpatickets.bo.Seat;
import org.myorg.jpatickets.bo.Venue;
public class VenueDAOImpl implements VenueDAO {
private EntityManager em;
public void setEntityManager(EntityManager em) {
this.em = em;
}
@Override
public void saveVenue(Venue venue, List<Seat> seats) {
em.setFlushMode(FlushModeType.COMMIT);
em.persist(venue);
if (seats!=null) {
for (Seat s: seats) {
em.persist(s);
}
}
em.setFlushMode(FlushModeType.AUTO);
}
public Venue getVenue(String venueId) {
return em.find(Venue.class, venueId);
}
@Override
public List<Seat> getSeatsForVenue(Venue venue, int offset, int limit) {
TypedQuery<Seat> query = em.createNamedQuery("JPATicketSeat.getSeatsForVenue",
Seat.class)
.setParameter("venue", venue);
if (offset > 0) { query.setFirstResult(offset); }
if (limit > 0) { query.setMaxResults(limit); }
return query.getResultList();
}
}