JPA Persistieren mit JTA funktioniert nicht

OmegaPirat

Mitglied
Hallo,
ich arbeite mich gerade in JPA ein. Ich habe ein Servlet geschrieben, welches eine Email-Adresse und ein Passwort von einer Usereingabe entgegen nimmt und die Daten in einer Datenbank ablegen soll.
Die Klasse sieht so aus:
Java:
package siemer.onlineshop;

import java.io.IOException;

import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.NotSupportedException;
import javax.transaction.RollbackException;
import javax.transaction.SystemException;
import javax.transaction.UserTransaction;

import siemer.onlineshop.model.Customer;

/**
* Servlet implementation class RegisterServlet
*/
@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @PersistenceUnit(unitName = "onlineshop-jpa")
    private EntityManagerFactory emf;
    @Resource
    private UserTransaction ut;

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        if (emf == null)
            System.out.println("EMF:" + "null");
        EntityManager em = emf.createEntityManager();
        String email = request.getParameter("email");
        String password = request.getParameter("password");
        Customer customer = new Customer();
        customer.setEmail(email);
        customer.setPassword(password);
        customer.setId(7L);
        try {
            ut.begin();
            em.persist(customer);
            ut.commit();
            em.close();
        } catch (NotSupportedException | SystemException | SecurityException | IllegalStateException | RollbackException
                | HeuristicMixedException | HeuristicRollbackException e) {
            e.printStackTrace();
        }
        RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
        dispatcher.forward(request, response);
    }

}
Hier ist meine Customer-Klasse
Java:
package siemer.onlineshop.model;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(schema="ONLINESHOP", name="CUSTOMER")
public class Customer implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = -2892494802019584416L;
    @Id private Long id;
    private String email;
    private String password;

    public Customer() {

    }

    public Customer(String email, String password) {
        this.setEmail(email);
        this.setPassword(password);
    }

    public long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
und hier ist noch meine persistence.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="onlineshop-jpa" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/__default</jta-data-source>
    <class>siemer.onlineshop.model.Customer</class>
    </persistence-unit>
</persistence>

Wenn ich dies ausführe, erhalte ich keine Fehlermeldung, aber die Daten wurden nicht in der Datenbank abgelegt.
In der Konsole steht nur:
onlineshop-war was successfully deployed in 559 milliseconds.
Kann mir jemand sagen, was ich falsch mache? Ich bin in dem Bereich noch ein Anfänger.
Als Java-SE-Anwendung (also wenn der transaction-type = "RESOURCE_LOCAL" ist und den entsprechenden Anpassungen) funktioniert es jedenfalls.
Vielen Dank im Voraus.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R NPE beim Persistieren einer Entität Data Tier 6
J Arrays persistieren mit JPA Data Tier 9
D viele jpa-entitäten "persistieren" Data Tier 14
J Umstieg von Wildfly 13->14, JPA 2.1->2.2, schreiben funktioniert nicht mehr Data Tier 10
C JPQL mit WHERE und LIKE funktioniert "manchmal"? Data Tier 2
D jpa/eclipselink setMaxResults() funktioniert nicht mit MySql?! Data Tier 9
D jpa "pessimistic lock" funktioniert nicht?! Data Tier 11
W JPA Persistenz 2x hintereinander funktioniert nicht Data Tier 3
K Hibernate: OneToOne funktioniert nicht Data Tier 3
G JPA kann Objekt nicht löschen Data Tier 4
R JSF Daten werden nicht aktualisiert aus Datenbank gelesen Data Tier 3
G Zuweisen von eigenen DB-Verbindungen nicht möglich Data Tier 3
M HibernateTemplate löscht nicht ohne flush() Data Tier 0
N JPA Änderungen werden nicht gespeichert Data Tier 2
S JPA Cascade: Entity nur speichern, wenn sie nicht schon existiert Data Tier 0
E JPA Session.delete einer Entity wird nicht ausgeführt Data Tier 2
Kenan89 9.2-1000 JDBC 4 nicht für Java EE ? Data Tier 3
neonfly <exclude-unlisted-classes>true</exclude-unlisted-classes> mag <class>package.Klasse</class> nicht Data Tier 2
K JPA One2Many-Set erkennt seine Inhalte nicht wieder Data Tier 3
D Hibernate Tabellen werden nicht mehr erstellt Data Tier 2
R Beim deployen und initialisieren der DB werden Umlaute nicht gespeichert Data Tier 5
B Datensatz wird nicht in DB geschrieben! Data Tier 2
N Löschen OneToMany Beziehung (delete-orphan) geht nicht Data Tier 2
T JPA2/Hibernate: Many-to-Many-Relation wird u.a. beim löschen nicht aktualisiert Data Tier 14
Landei JPA - persist persisted nicht Data Tier 4
A Fehlermeldung: Tabellen werden nicht gefunden Data Tier 2
L Hibernate - Tabelle nicht gemappt!? Data Tier 4
H Log4J loggt Hibernate nicht in Kombination mit Tomcat Data Tier 2
N Spring / OpenJPA Inheritance: Subklassen werden nicht erkannt Data Tier 4
D Daten werden nicht gespeichert mit Spring + JPA (Hibernate): Data Tier 6
W JPA generiert die Tabellen bzw. die DDL Files nicht Data Tier 6
D Hibernate: Objekt wird nicht gelöscht. Data Tier 5
D Hibernate schreibt nicht in DB Data Tier 1

Ähnliche Java Themen


Oben