@Override public List<Event> getChildAdoptionRecords(Person person) { // get the birth records of the children of this parent List<Adoption> adoptionRecords = new ArrayList<Adoption>(); em.getTransaction().begin(); TypedQuery<Adoption> q = em.createQuery( "select b from Adoption b, IN(b.parents) p WHERE p.id = :idParam", Adoption.class); q.setParameter("idParam", person.getId()); adoptionRecords.addAll(q.getResultList()); List<Event> adoptions = new ArrayList<Event>(); for (Adoption b : adoptionRecords) { if (b != null) { AdoptedChildRecord cr = new AdoptedChildRecord(); cr.setEventDate(b.getEventDate()); cr.setPerson(person); cr.setChild(b.getPerson()); cr.setTown(b.getTown()); cr.setState_province(b.getState_province()); cr.setCountry(b.getCountry()); adoptions.add(cr); } } em.getTransaction().commit(); return adoptions; }
@Override public void updateAdoption(Adoption a) { em.getTransaction().begin(); Adoption target = em.find(Adoption.class, a.getId()); target.setCountry(a.getCountry()); target.setEventDate(a.getEventDate()); target.setPerson(a.getPerson()); target.setState_province(a.getState_province()); target.setTown(a.getTown()); target.setParents(a.getParents()); em.merge(target); em.getTransaction().commit(); }