@Override public void addRollenTypToEinheit(RollenTyp rollenTyp, Einheit einheit) throws RollenTypException { // check rolenTyp if (rollenTyp == null) { throw new RollenTypException("rollenTyp == null"); } JpaRollenTyp jpaRollenTyp = jpaRollenTyp4oid(rollenTyp.getOid()); if (jpaRollenTyp == null) { throw new RollenTypException("unknown rollenTyp: " + rollenTyp.getOid()); } // check einheit try { einheit = einheitApi.einheit4oid(einheit.getOid()); } catch (EinheitException e) { throw new RollenTypException("einheit == null"); } // check duplicate JpaRollenTypZuordnung jpaRollenTypZuordnung = jpaRollenTypZuordnung4RollenTypAndEinheit(rollenTyp.getOid(), einheit.getOid()); // no duplicate -> insert if (jpaRollenTypZuordnung == null) { jpaRollenTypZuordnung = new JpaRollenTypZuordnung(); jpaRollenTypZuordnung.setOid(UUID.randomUUID().toString()); jpaRollenTypZuordnung.setRollenTypOid(rollenTyp.getOid()); jpaRollenTypZuordnung.setEinheitOid(einheit.getOid()); em.persist(jpaRollenTypZuordnung); } }
@Override public List<Einheit> einheitList4oberEinheit(Einheit oberEinheit) throws EinheitException { // check params if (oberEinheit == null) { throw new EinheitException("oberEinheit == null"); } String oberEinheitOid = oberEinheit.getOid(); // execute query TypedQuery<JpaEinheit> query = em.createQuery( "select e from JpaEinheit e where e.oberEinheitOid = :oberEinheitOid", JpaEinheit.class); // return result return query .setParameter("oberEinheitOid", oberEinheitOid) .getResultList() .stream() .map(JpaEinheit::toEinheit) .collect(Collectors.toList()); }
@Override public void einheitLoeschen(Einheit einheit) throws EinheitException { // check params if (einheit == null) { throw new EinheitException("einheit == null"); } // check oid String oid = einheit.getOid(); if (oid == null) { throw new EinheitException("oid == null"); } // get entity JpaEinheit jpaEinheit = jpaeinheit4oid(oid); if (jpaEinheit == null) { throw new EinheitException("oid not found: " + oid); } // delete em.remove(jpaEinheit); }
@Override public Einheit einheitErzeugen(Einheit einheit) throws EinheitException { // check params if (einheit == null) { throw new EinheitException("einheit == null"); } // set oid if (einheit.getOid() == null) { einheit.setOid(UUID.randomUUID().toString()); } if (einheit.getCreated() == null) { einheit.setCreated(new Date()); } // persist em.persist(JpaEinheit.fromEinheit(einheit)); // notify listeners listerApi.einheitAngelegt(einheit); // return einheit return einheit; }