Java Reference
In-Depth Information
Name sagt— einen Eintrag in der Datenbanktabelle. Dazu wird die Methode remove des
EntityManagers verwendet.
Listing 13.14 Stateless-Bean-Klasse PersonManagerImpl
package javacomp.ejb.person.server;
import javax.ejb.Stateless;
import javax.persistence.*;
@Stateless(mappedName="PersonManager")
public class PersonManagerImpl implements PersonManager
{
@PersistenceContext
private EntityManager em;
public int createPerson(String firstName, String secondName)
{
Person person = new Person();
person.setFirstName(firstName);
person.setSecondName(secondName);
em.persist(person);
return person.getId();
}
public Person findPerson(int id)
{
return em.find(Person.class, id);
}
public boolean removePerson(int id)
{
Person person = findPerson(id);
if(person == null)
{
return false;
}
em.remove(person);
return true;
}
}
Weitere interessante Gesichtspunkte sind unidirektionale und bidirektionale 1:1-, 1:n-, n:1-
und m:n-Beziehungen sowie die Abbildung von Vererbungsbeziehungen in die Datenbank.
Darauf kann aber hier nicht weiter eingegangen werden.
Wie hoff entlich bekannt spielen Transaktionen eine wichtige Rolle beim Zugriff auf Daten-
banken. Der Start und die Beendigung (durch Commit oder Rollback) einer Transaktion
werden bei der Einstellung CONTAINER als TransactionManagementType (diese Einstel-
lung gilt, wenn die Bean-Klasse keine Annotation bezüglich der Transaktionssteuerung hat)
vom EJB-Container, genauer vom EJB-Proxy-Objekt, durchgeführt. Normalerweise läu jede
Bean-Methode in einer eigenen Transaktion ab. Wenn man dies aber anders haben möchte,
kann man es durch Annotierungen der Bean-Methoden erreichen. Da man die Transak-
tionssteuerung in diesem Fall nicht ausprogrammiert, sondern nur angibt, wie sie sein soll,
spricht man von einer deklarativen Transaktionssteuerung. Bei der deklarativen Transak-
tionssteuerung ist von besonderem Interesse, wenn eine Bean-Methode eine andere Bean-
 
Search WWH ::




Custom Search