/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package beans.artikelManager; import beans.*; import entities.Artikel; import exceptions.IdBereitsVergebenException; import exceptions.UnbekanntesEntityException; import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; /** * * @author Jan */ @Stateless(mappedName="ArtikelManagerBean") public class ArtikelManagerBean implements ArtikelManagerRemote { @PersistenceContext private EntityManager em; /** * erstellt einen Artikel und liefert die Artikel-Id zurueck * @param artikel * @return Artikel-Id */ public long createArtikel(Artikel artikel) throws IdBereitsVergebenException { try { em.persist(artikel); return artikel.getId(); } catch(Exception e){ throw new IdBereitsVergebenException("Artikel-Id bereits vergeben: [id="+ artikel.getId()+"]"); } } /** * Gibt einen Artikel anhand seiner Id zurueck * @param artikelId * @return */ public Artikel readArtikel( long artikelId) throws UnbekanntesEntityException{ Artikel artikel = em.find(Artikel.class, artikelId ); if (artikel == null) throw new UnbekanntesEntityException("Artikel", artikelId); return artikel; } /** * gibt alle Artikel zurueck * @return */ public List readAllArtikel(){ return (List)em.createQuery("SELECT a FROM Artikel a ORDER BY a.id").getResultList(); } /** * Schreibt die Änderungen eines Artikels in die Datenbank * @param artikel */ public void updateArtikel( Artikel artikel){ em.merge(artikel); } /** * Entfernt einen Artikel mit der angegebenen Artikel-Id * @param artikelId */ public void deleteArtikel(long artikelId){ Artikel artikel = em.find(Artikel.class, artikelId ); em.remove(artikel); } /** * entfernt alle Artikel */ public void deleteAllArtikel(){ for(Artikel artikel : readAllArtikel()){ deleteArtikel( artikel.getId() ); } } /** * Prüft ob es einen Artikel mit angegebener Artikel-Id gibt * @param artikelId * @return */ public boolean existsArtikel(long artikelId){ Artikel artikel = em.find(Artikel.class, artikelId ); if(artikel != null) return true; return false; } }