Für das Abspeichern von Objekten in einer Datenbank wird die Java Persistence API verwendet, die durch JTA und EJB ergänzt werden kann. Die Unterschiede liegen hier in der Verwaltung des EntityManagers sowie der Implementierung der Transaktionen, die im unten stehenden Beispiel gegenübergestellt sind. Es sollte sich bei der Implementierung für eine der Varianten entschieden werden.
In der Konfigurationsdatei persistence.xml wird zunächst u.a. der transaction-type definiert. Hierbei wird zwischen "RESOURCE_LOCAL"
und "JTA"
unterschieden.
Bei Verwendung von @TransactionAttribute ist darauf zu achten, dass diese nicht mit der CDI-Annotation @Transactional, die die gleichen Attribute verwendet, verwechselt wird. @TransactionAttribute gehört zum Package javax.ejb.TransactionAttribute und damit zu EJB, @Transactional gehört zum Package javax.transaction, das die Transaktion über CDI steuert und damit eine weitere Möglichkeit der Implementierung von Transaktionen darstellt.