package net.java.cargotracker.infrastructure.persistence.jpa; import java.io.Serializable; import javax.enterprise.context.ApplicationScoped; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import net.java.cargotracker.domain.model.cargo.TrackingId; import net.java.cargotracker.domain.model.handling.HandlingEvent; import net.java.cargotracker.domain.model.handling.HandlingEventRepository; import net.java.cargotracker.domain.model.handling.HandlingHistory; @ApplicationScoped public class JpaHandlingEventRepository implements HandlingEventRepository, Serializable { private static final long serialVersionUID = 1L; @PersistenceContext private EntityManager entityManager; @Override public void store(HandlingEvent event) { entityManager.persist(event); } @Override public HandlingHistory lookupHandlingHistoryOfCargo(TrackingId trackingId) { return new HandlingHistory(entityManager.createNamedQuery( "HandlingEvent.findByTrackingId", HandlingEvent.class) .setParameter("trackingId", trackingId).getResultList()); } }