public URI getUriArtikel(Artikel artikel, UriInfo uriInfo) { final UriBuilder ub = uriInfo .getBaseUriBuilder() .path(ArtikelResource.class) .path(ArtikelResource.class, "findArtikelById"); final URI uri = ub.build(artikel.getId()); return uri; }
@TransactionAttribute(REQUIRED) public String update() { if (!geaendertArtikel || alterArtikel == null) { return JSF_INDEX; } alterArtikel = as.updateArtikel(alterArtikel, locale); // Push-Event fuer Webbrowser updateArtikelEvent.fire(String.valueOf(alterArtikel.getId())); // ValueChangeListener zuruecksetzen geaendertArtikel = false; // Aufbereitung fuer viewKunde.xhtml id = alterArtikel.getId(); return JSF_UPDATE_ARTIKEL + JSF_REDIRECT_SUFFIX; }
@Override public String toString() { final Long artikelId = artikel == null ? null : artikel.getId(); return "Bestellposition [id=" + id + ", artikel=" + artikelId + ", artikelUri=" + artikelUri + ", anzahl=" + anzahl + "]"; }
@TransactionAttribute(REQUIRED) public String createArtikel() { neuerArtikel = (Artikel) as.createArtikel(neuerArtikel, locale); // Push-Event fuer Webbrowser // neuerArtikelEvent.fire(String.valueOf(neuerArtikel.getId())); // Aufbereitung fuer viewKunde.xhtml id = neuerArtikel.getId(); alterArtikel = neuerArtikel; neuerArtikel = null; // zuruecksetzen return JSF_LIST_ARTIKEL + JSF_REDIRECT_SUFFIX; }
public <T extends Artikel> T updateArtikel(T artikel) { if (artikel == null) { return null; } // kunde vom EntityManager trennen, weil anschliessend z.B. nach Id und Email gesucht wird em.detach(artikel); // Gibt es ein anderes Objekt mit gleicher Email-Adresse? final List<Artikel> tmp = findArtikelByBezeichnung(artikel.getBezeichnung()); for (Artikel a : tmp) { em.detach(a); if (a.getId().longValue() != artikel.getId().longValue()) throw new BezeichnungExistsException(artikel.getBezeichnung()); } artikel = em.merge(artikel); // OptimisticLockException return artikel; }