Derby/JavaDB Neu geschriebener Eintrag per UPDATE lässt sich nicht unmittelbar abrufen

Midgard

Neues Mitglied
Hallo zusammen,

mich beschäftigt seit geraumer Zeit ein Problem mit Apache Derby und dem EntityManager.
Ich habe einen Quellcode übernommen, kann diese Person aber dazu im Moment nicht befragen.
Folglich steige ich durch einige Dinge nicht so durch, weil es Fremdcode ist.

Im Moment schreibe ich mehrere Datensätze in die Datenbank und bearbeite diese.
In dem Programm möchte ich gleich danach auch darauf zugreifen können.

Leider ist es so, dass neu eingepflegte Datensätze erst nach einem Neustart des Programms (ich vermute also nach einem neuen öffnen der Datenbank) mit SELECT abgerufen werden können. Wie kann dies trotz Commit Befehl passieren?


Der Update Code ist ca. wie folgt:

Java:
if(!entityManager.getTransaction().isActive()) entityManager.getTransaction().begin();
Query q = entityManager.createQuery("UPDATE Daten1 d SET name= :name WHERE d.id= :id");
q.setParameter("name", name1);
q.setParameter("id", id1);
q.executeUpdate();
entityManager.getTransaction().commit();

Möchte ich an späterer Stelle und in anderer Methode etwas selektieren, sieht das wie folgt aus:

Java:
List<Daten1> liste1 = new ArrayList<Daten1>();
liste1 = entityManager.createQuery("SELECT d FROM Daten1 d WHERE d.id < 10").getResultList();
for (int i = 0; i < exportVuls.size(); i++) {
    Daten1 d = liste1.get(i);
    System.out.println(d.name()+" " + d.id());
}

Woran liegt diese zeitliche Verzögerung? Ich möchte das Programm nicht neustarten müssen, um auf neue Ergebnisse zurückgreifen zu können.
Der FlushMode ist übrigens "Auto", falls dies relevant ist.

Besten Dank schon mal.
 

Steve E.

Mitglied
Hallo Forumsmitglieder!

Auf der suche nach einer Lösung meines Problems bin ich via google direkt hirher gekommen.
denn auch ich habe fast das selbe Problem, wie Midgard auch (denke ich).

IDE: Eclipse, JDK 1.7, Datenbank = Derby, Auto-Commit = false
Bei mir stellt sich das folgendermaßen dar: Ich mache ein INSERT in eine Tabelle und möchte per SELECT drauf zugreifen da es sich um Daten handelt die ich zur Laufzeit verwende. (wird das Program geschlossen werden diese Daten per UPDATE aktualisiert).
INSERT:
Java:
nrmap = new HashMap<String, Numberranges>();
			try {
				while (rs.next()) {
					//wenn er hier rein geht, wissen wir, dass es zumindest einen Datensatz gibt
					//in der NRRANGES Tabelle, also helper auf true setzen
					bo_help	=	true;
					nrr_tmp = new Numberranges();
					nrr_tmp.setObj(rs.getString("obj"));
					nrr_tmp.setVon(rs.getString("von"));
					nrr_tmp.setBis(rs.getString("bis"));
					nrr_tmp.setStand(rs.getString("stand"));
					nrr_tmp.setAktiv(rs.getString("aktiv"));

					nrmap.put(nrr_tmp.getObj(), nrr_tmp);
					nrr_tmp = null;
				}
				
			} 
			catch (SQLException sqlex) {
				System.out.println("Fehler in Numberranges...leer?");
				System.out.println(sqlex.getMessage().toString());
				sqlex.printStackTrace();
			}
			//die Numberranges waren nicht auf der DB zu finden also legen wir sie an
			if (bo_help == false) {
				locdb	=	database;
				initNrsaetze();				
			}
			//und damit wir zur Laufzeit auch damit arbeiten können, starten wir noch einen Leseversuch
			rs = null;
			database.deleteconn();
			rs	=	database.select(sqlselect);
			if (rs == null) {
				
			}
			else {
				try {
					//Quellcode wie oben!!
					bo_help	=	true;
					nrr_tmp = new Numberranges();
					nrr_tmp.setObj(rs.getString("obj"));
					nrr_tmp.setVon(rs.getString("von"));
					nrr_tmp.setBis(rs.getString("bis"));
					nrr_tmp.setStand(rs.getString("stand"));
					nrr_tmp.setAktiv(rs.getString("aktiv"));

					nrmap.put(nrr_tmp.getObj(), nrr_tmp);
					nrr_tmp = null;
					
				} catch (SQLException sqlex) {
					// TODO: handle exception
				}
			}
Zu beachten ist, das (beim zweiten try Block) keine SQL Exception geworfen wird. Im Debugger komme ich bis zur Stelle
Code:
nrr_tmp.setObj(rs.getString("obj"));
.
(rs = ResultSet; nrr_tmp ist eine von mir geschriebene Klasse mit setter(String)-Methode.
Die Befehle
Code:
rs = null;
und
Code:
database.deleteconn();
sind schon Versuche von mir das ganze irgendwie hinzhubekommen. Und wie gesagt, wenn ich das Programm schließe und neu aufrufe, funktioniert auch das SELECT?!

Irgendjemand eine Idee? Besten Dank für eure Unterstützung
 

Steve E.

Mitglied
Hallo zusammen. Ich hab den Fehler mittlerweile gefunden. Man sieht in auch in meinem Quellcodeausschnitt.
Das was ich in Zeile 3 mache (
Code:
while (rs.next()) {
), hätte ich unten (ca. Zeile 38 ) auch machen sollen.
Dadurch das der Zeiger des ResultSets auf beforeFirst steht springt er bei der ersten get-Anweisung
des ResultSets aus dem try raus (ohne Exception).
Hätt ich gleich drauf kommen können...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
G 2 Tabellen und ein spezieller Eintrag Datenbankprogrammierung 2
J Java DB Neuen Eintrag am Anfang der Table Datenbankprogrammierung 6
E ClassNotFoundException bei verschiedenen MS SQL Treibern trotz Classpath-Eintrag Datenbankprogrammierung 5
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
M OutOfMemoryException obwohl nur 1 Eintrag abgefragt wird Datenbankprogrammierung 7
A Ausgewählten Jtable Eintrag aus Db löschen Datenbankprogrammierung 9
C H2 Letzten Eintrag auslesen Datenbankprogrammierung 6
N batchupdate, es wird nur der letzte Eintrag eingetragen Datenbankprogrammierung 5
G Existiert schon ein DB- Eintrag Datenbankprogrammierung 1
S MySQL Kein DB-Eintrag Datenbankprogrammierung 4
prakdi einzelnen SQL Eintrag finden der "update" enthält Datenbankprogrammierung 3
K Wird auf den Eintrag referenziert? Datenbankprogrammierung 4
E Aus einer Tabelle Zeilen mit doppeltem Eintrag holen? Datenbankprogrammierung 4
B Datenbank Abfrage: Es fehlt immer ein Eintrag! Datenbankprogrammierung 7
B Eintrag in der MySQL Datenbank eintragen? Datenbankprogrammierung 2
G Policy Eintrag für SQL Zugriff im Netzwerk Datenbankprogrammierung 10
T [jdbc] einen Eintrag aus mehreren Tabellen löschen (Batch) Datenbankprogrammierung 3
J Eintrag aus der Spalte auswählen Datenbankprogrammierung 3
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
OnDemand SQL-Statement Update mit innerjoin Datenbankprogrammierung 18
OnDemand Update table SET will nicht Datenbankprogrammierung 9
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
S Update Tabelle aus Textfeld Datenbankprogrammierung 2
S JPA: update von Schlüsselwerten Datenbankprogrammierung 2
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
M Update Befehl Datenbankprogrammierung 1
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
M SQL-Statement Datentypen in Kriterienausdruck unverdräglich bei Update auf DB von Java aus Datenbankprogrammierung 0
M SQL UPDATE richtig anwenden BITTE um HILFE Datenbankprogrammierung 3
M SQL UPDATE führt zu JAVA Absturz Datenbankprogrammierung 6
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
S UPDATE user Datenbankprogrammierung 4
R Fehler 2601 trotz SQL-UPDATE ? Datenbankprogrammierung 2
B DB Update via batch Datenbankprogrammierung 3
H Update ganze zeile Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
5 Datenbank Update Datenbankprogrammierung 8
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
turmaline Oracle "Häppchenweises" Update durchführen Datenbankprogrammierung 4
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
D ArrayIndexOutOfBoundsException bei Update von JTable und Model Datenbankprogrammierung 13
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
I Derby/JavaDB Update Fehler Datenbankprogrammierung 4
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
1 On duplicate Key update Datenbankprogrammierung 3
M DB update geht einfach nicht Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
G MySQL Update Datenbankprogrammierung 5
M MySQL größere von zwei Zahlen in Update Statement Datenbankprogrammierung 2
T Update an SQL Tabelle ?! Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
C Update Table1 mit Relationship Table2 Datenbankprogrammierung 6
V Datenbank Update Datenbankprogrammierung 7
A update methode für datenbank Datenbankprogrammierung 2
M Hibernate: Insert statt Update Datenbankprogrammierung 8
E Update DB; Werte aus Feldern übernehmen Datenbankprogrammierung 5
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
H Datenbank Update Datenbankprogrammierung 3
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
M Update mysql Fehler ?? Datenbankprogrammierung 4
T Problem beim Update in die Access DB Datenbankprogrammierung 9
R Update Time auslesen Datenbankprogrammierung 2
T DB2 delete/update über 2 Tabellen Datenbankprogrammierung 2
K Ist mein UPDATE fehlerhaft? Datenbankprogrammierung 3
G Update-Befehl Fehlerhaft ?? Datenbankprogrammierung 2
G Update Befehl funkt nicht. WARUM? Datenbankprogrammierung 5
S Update Problem Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
S CashedRowSet update - oder was mache ich falsch - Datenbankprogrammierung 6
B [SQL] UPDATE oder REPLACE INTO Befehl Datenbankprogrammierung 10
S Update mit null Datenbankprogrammierung 11
H UPDATE . Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
T Update-Frage Datenbankprogrammierung 11
Y Hibernate - Update bestimmter Spalten Datenbankprogrammierung 2
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
B Update funktioniert nicht Datenbankprogrammierung 8
R Update und Insert Gleichzeitig? Datenbankprogrammierung 2
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28

Ähnliche Java Themen

Neue Themen


Oben