Guten Morgen! zum Schreiben von Daten gibts bei MySQL ja Transactions, mit denen mehrere Schreiboperationen zu einer atomaren ausgeführten Schreiboperationen zusammengefasst - oder im Fehlerfall verworfen werden. Gibt's für's Lesen eigentlich auch sowas? D.h. angenommen, ich hab Daten, die liegen in 2 Tabellen. Ich würde nun gerne meine MYSQL-Abfragen atomar ausführen, d.h. zwischen query 1 und query 2 darf niemand was in eine der beide Tabellen reinschreiben, weil sonst meine Ergebnisse inkonsistent werden. Ich verwende übrigens JDO + Datanucleus + MySQL unter Java. Grüße, Fetz von Fetzenstein
Wenn jemand in die Tabellen mit einer Transaktion reinschreibt dann kannst du sie im normalfall eh nicht lesen. Ausser die liest mit "uncommitted read"
Du kannst das "Transaction-Level" setzen, damit hast du Einflussmöglichkeit. Schreib mal mehr zu deiner Architektur, dann kann man dir noch besser helfen.
Transaktionen gibt es auch fürs lesen, wieso auch nicht, je nach Transaktionsmodus kreigst du dan erstmal vom Schreiben anderer nix mit. Nur kannst du das ganze nicht "verwerfen" oder "annehmen" das ist auch nur beim schreiben sinnvoll. Am Einfachsten geht es allerdings wenn du von vornherein deine Daten zusammen abfragst (z.B. über einen Join). JDO sollte das aber (eigentlich) von selbst handhaben.
Schau dir das Interface "javax.jdo.Transaction" an, da kannst du alles konfigurieren.
Läubi .. schrieb: > Transaktionen gibt es auch fürs lesen, wieso auch nicht, je nach > Transaktionsmodus kreigst du dan erstmal vom Schreiben anderer nix mit. > Nur kannst du das ganze nicht "verwerfen" oder "annehmen" das ist auch > nur beim schreiben sinnvoll. > Am Einfachsten geht es allerdings wenn du von vornherein deine Daten > zusammen abfragst (z.B. über einen Join). > JDO sollte das aber (eigentlich) von selbst handhaben. Ich hab jetzt endlich rausgefunden wie man richtige SQL-Abfragen mit JDO ausführt und das funktioniert sogar. Jetzt kann ich ganz gewohnt meine Tables joinen und alles in einem Rutsch erledigen ... Danke für den Denkanstoß! Grüße, Fetz
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.