JPA (EntityManager für jeden Nutzer?)

Status
Nicht offen für weitere Antworten.

SegFault

Bekanntes Mitglied
So eine Frage hätte ich noch. Ist es Sinnvoll für jeden, im gesamt DB-System angemeldeten Nutzer, einen eigenen EntityManager zu erzeugen?
Da ich meine Anwendung nun doch als ApplicationServer Anwendung stricke, kommen die Zugriffe ja übers Netz. Es wird also nicht gewährleistet wann, wer, was macht. Gerade bei Transaktionen sehe ich da ein Problem. Wenn jeder Nutzer seine eigenen EntityManager hat, ist das doch prinzipiell so wei eine eigene Datenbankanbindung? Oder sehe ich das falsch.
 

MrWhite

Bekanntes Mitglied
Nein, das siehst du ein wenig falsch. Der App-Server hat einen Connection-Pool, aus dem er eine freie rausnimmt wenn der User mit der DB kommuniziert. Du wirst also nicht mit Connection-Requests zur DB überflutet und das ganze wird relativ effizient verwaltet.
 
M

maki

Gast
MrWhite hat recht, ausserdem sollte man nicht in "Benutzern" sondern in "Threads" denken.
 

SegFault

Bekanntes Mitglied
D.H. es reicht ein EntityManager und ich kann mit getTransaction().begin(); und getTransaction().commit() bzw. rollback()
alles handeln? Oder muss ich das ganze nun noch mit synchronized absichern? Weil ich ja noch nicht genau weiss wann welcher nutzer etwas anfordert. Nicht das sich jetzt Transaktionen gegenseitig beeinflussen. (Nutzer 1 will ein insert machen und startet eine Transaktion, Nutzer 2 macht ein update und startet auch eine Transaktion, Nutzer 2 commited seine Transaktion eher). Was ist mir der Transaktion von Nutzer1 wenn beides aus dem gleichen entityManager gestartet wird und ich immer mit em.getTransaction().begin(), em.getTransaction().commit() arbeite. (Ggf ist diese Vorgehensweise falsch).
 
M

maki

Gast
Wie gesagt, vergiss die Benutzer, denke in Threads, ein Benutzer kann mehrere Threads gleichzeitig bzw. schnell hineinander abfeuern, Transaktionen sind normalerweise an den Thread & die Connection gebunden.

Ich würde die Transaktionen nicht manuell & hardcodiert in code Starten & Beenden, nicht praktisch & nicht schön & mit der Zeit sehr kompliziert.
Sowohl JEE als auch Spring bieten die Möglichkeit Transaktionen Deklarativ zu steuern, sollte unbedingt(!!!) genutzt werden.
 

SegFault

Bekanntes Mitglied
AFAIK nutze ich JEE zumindest nutze ich die javaee-api für die javax.Persistence geschichte. Hab aber nichts konkretes zum Managen der Transactions gefunden.
 

MrWhite

Bekanntes Mitglied
Da gibt es viele Möglichkeiten um Transaktionen deklarativ zu steuern.

EJB 3.0 bringt das z.B. mit. Dann wären da noch SEAM und Spring zu erwähnen, die so etwas ebenfalls besitzen.

Für EJB 3.0:
TransactionAttribute (Java EE 5)
TransactionAttributeType (Java EE 5)
http://www.javapassion.com/j2ee/jpatransaction.pdf

Mit SEAM kann man sich auch direkt die Transaktion injizieren lassen und damit klassisch imperativ Schindluder treiben, wenn man will.

Nicht zuletzt hat doch der EntityManager auch noch eine getTransaction()-Methode, aber ob man mit der was anfangen kann, hängt von der Konfiguration des Persistence-Kontext ab.
 

SegFault

Bekanntes Mitglied
Manchmal ists doch recht sinnvoll eine Nacht über ein Problem zu schlafen, gestern hab ich die Links noch nicht verstanden. Heute sieht das schon anders aus. Ich werds mal mit den Transaction Attribute versuchen. Das wirkt recht brauchbar für meine Zwecke. So wirklich aufwendig ists das ganze bei mir auch noch nicht. Ich markier das ganze vorerst als Erledigt. Könnte aber sein das ichs nochmal öffne. Danke für die gute Info. Hat mir erstmal ziemlich geholfen.
 

SegFault

Bekanntes Mitglied
Ok, ich muss nochmal berichtigen. Ich benutze keine ejb Beans und auch kein Spring framework. Ich verwende Hibernate bisher so das ich getEntityManagerFactory("blah"); aufrufe und den EntityManager darüber mit getEntityManager hole. Sind die bisher gemachten Angaben noch richtig? Also die Bindung der Transaction an den Thread und die Connection? Im grunde ist das ja meine eigene Anwendung, ich verteile Sie nur über RMI.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A MySQL Parallel laufende EntityManager kommen sich in die Quere Datenbankprogrammierung 1
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
M HSQLDB EntityManager null? Datenbankprogrammierung 7
J Derby/JavaDB NullPointerException bei VORHANDENEM EntityManager-Objekt!!! Datenbankprogrammierung 3
S Hibernate, jpa, EntityManager etc. Datenbankprogrammierung 6
J method createQuery in interface javax.persistence.EntityManager cannot be applied to given types ... Datenbankprogrammierung 2
M No Persistence provider for EntityManager Datenbankprogrammierung 1
K Was fehlt? - No Persistence provider for EntityManager Datenbankprogrammierung 4
QDog JPA EntityManager auslagern Datenbankprogrammierung 2
D Verknüpfung auflösen für Frontend Datenbankprogrammierung 7
R Beste Lösung für User Erstellung in mongodb Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
Zrebna Empfehlung für ein kostenloses DB-Hosting gesucht Datenbankprogrammierung 6
M Lösungsvorschläge für Multi-User Datenbankprogrammierung 1
M Alle Records Felder kriegen für DB Abfrage Datenbankprogrammierung 14
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Kirby.exe Denkanstoß für Ranking Datenbankprogrammierung 1
L Oracle Repräsentative Namen für die Column Types Datenbankprogrammierung 9
OnDemand Struktur für Parent / Child Produkt Datenbankprogrammierung 5
N ORM für Sqlite Datenbankprogrammierung 4
I Konzept: Klasse / Entity für Einstellung der Software Datenbankprogrammierung 3
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
ruutaiokwu MySQL MariaDB-Client-Zertifkate, nur für einen bestimmten User Datenbankprogrammierung 5
B Datenmodell für Regeln + Bedingungen & Referenz auf andere Tabelle Datenbankprogrammierung 12
O Dokumentation für MariaDB 10.3. Datenbankprogrammierung 2
F MariaDatabase Einstellungen für Verbindungen Datenbankprogrammierung 5
Dimax MySQL Trigger für eine Spalte Datenbankprogrammierung 5
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B Brauche Tipps für Datenbankdesign Datenbankprogrammierung 8
B Tabelle für "wiederkehrende Rechnungen" Datenbankprogrammierung 12
Danloc Informationen für Datenbankverbindung wo/wie speichern? Datenbankprogrammierung 11
J Warum sind Sockets für einen Live-Chat sinnvoll? Datenbankprogrammierung 8
R Java-Befehle/Operatoren für copy&paste Datenbankprogrammierung 2
X PostgreSQL Datenbankdesign für Vokabeltrainer Datenbankprogrammierung 48
@SupressWarnings() HSQLDB Datenbank für mein Dorfbauspiel "Time of Kings" Datenbankprogrammierung 6
M Idee Umsetzung //NFC Eintrittskarten für Geburtstag Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
P Datanbank für Java-Programmierung Datenbankprogrammierung 10
M Feedback für neues Buch über "Java und Datenbanken" erwünscht Datenbankprogrammierung 8
J SQLite Ich muss für mein Projekt meine Datenbank Kapseln Datenbankprogrammierung 2
J Tipps für ERM Datenbankprogrammierung 4
P Highlevel-Lösung für Speicherung von Baumstruktur mit unbekannter Tiefe Datenbankprogrammierung 1
F welche Datenbank für Messwerte? Datenbankprogrammierung 4
E Warum werden für Datenbanktabellen Schemanamen festgelegt? Datenbankprogrammierung 1
M DB Schema für Vokabeltrainer Datenbankprogrammierung 2
U SQLite Für mich etwa komplexe Abfrage via 2 Tabellen Datenbankprogrammierung 5
E Kann man, wenn man in DB2 Tabellen erstellt hat für dessen auch einen Command-File erstellen? Datenbankprogrammierung 1
T NoSQL Connection für die Thesis [GWT] Datenbankprogrammierung 1
J SQLite Abfrage ausführen stoppt für Zyklus? Wie es zu lösen? Datenbankprogrammierung 3
S HSQLDB Fehlermeldung für den Bildschirm Datenbankprogrammierung 3
L Datenmodell erstellen für eine Nutzertanalyse Datenbankprogrammierung 1
I Query für Geburtstage Datenbankprogrammierung 6
L Zentrale Datenbank im Internet für Spiele Highscores? Datenbankprogrammierung 1
P Derby/JavaDB Csv Datei für dieses Musterprogramm Datenbankprogrammierung 12
ruutaiokwu code-formatter für t-sql... Datenbankprogrammierung 12
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
T Mehrsprachigkeit für Tabellenfelder Datenbankprogrammierung 6
E MySQL Große Datenmengen reibungslos speichern für Gameserver Datenbankprogrammierung 6
F MSSql oder MongoDB für die Speicherung von POI Datenbankprogrammierung 9
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
P MySQL Historie für ein Objekt anlegen Datenbankprogrammierung 5
P MySQL eine richtige Datenbank für einen routenplaner erstellen Datenbankprogrammierung 2
K JDBC- In Java "stored procedure" erstellen für DB2,OracleSql ... Datenbankprogrammierung 3
J Datenbank für Fragen/ Antworten Datenbankprogrammierung 7
O Datenbankschnittstelle für Java Datenbankprogrammierung 8
L Datenbank für kleinere Anwendungen Datenbankprogrammierung 3
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
S ich brauche tipps für JDBC Datenbankprogrammierung 4
I Hibernate - Best Practice für Lazy Loading Datenbankprogrammierung 3
R MySQL Voraussetzungen für eine erfolgreiche Datenbankanbindung mittels JDBC Datenbankprogrammierung 2
GianaSisters SQL Befehl für allgemeine Datenbankexistenz Datenbankprogrammierung 4
B Beispiel für sicheres DBUsername/DBPassword handling Datenbankprogrammierung 4
I Anfänger-Tutorial für Hibernate gesucht Datenbankprogrammierung 3
heart_disease Beratung für Datenbankdesign Datenbankprogrammierung 13
C Embedded DB für Java Datenbankprogrammierung 26
J Unterstützung für verschiedene Datenbanken Datenbankprogrammierung 2
L MySQL Probleme mit PreparedStatement für SQL-Abfrage in Java Datenbankprogrammierung 2
F suche Erstanschub für DB-Zugriff Datenbankprogrammierung 9
F MySQL SQL Abfrage für u.a. Spaltenname key Datenbankprogrammierung 4
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
F Performance-Tool für Oracle Datenbankprogrammierung 2
T Kleine Tabellen für schnellere abfragen? Datenbankprogrammierung 3
C Split String für SQl query Datenbankprogrammierung 10
A update methode für datenbank Datenbankprogrammierung 2
N Datenbank für Dateien Datenbankprogrammierung 6
N Datenbank für einen Stundenplan Datenbankprogrammierung 4
G welche Datenbanktabellen für folgende Attribute Datenbankprogrammierung 3
R Connection Problem für eine externe DB mit Java (JDBC) Datenbankprogrammierung 9
J Buffer Manager für Datenbank Datenbankprogrammierung 4
F SQL Voraussetzung für JDBC? Datenbankprogrammierung 10
R Bei Webformular DropDown Felder JA, NEIN! Was für einen Datentyp verwenden? Datenbankprogrammierung 7
T SSL Zertifikat für mysql datenbankzugriff Datenbankprogrammierung 6
T Debugger für SQL? Datenbankprogrammierung 5
Chtonian Effizientes Query System für Wortnachschlagewerk Datenbankprogrammierung 9
G Tabelle für Zeitraum sperren Datenbankprogrammierung 4
A Struct für Datenbank abfrage? Datenbankprogrammierung 12
O Hibernate für Eclipse Datenbankprogrammierung 5
T JPQL Query für eine Tabellenansicht Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben