2016-07-07 2 views
-2

Ich habe eine kleine Anwendung läuft auf GlassFish. Ein Teil davon beinhaltet das Schreiben einiger Details über ein Pferd in eine Derby-Datenbank. Ich verwende eine automatisch generierte Sitzungsfassade und eine Entitätsklasse, um in die Datenbank zu schreiben. Dies funktioniert korrekt, und ich kann sehen, dass die Daten korrekt mit NetBeans SQL Editor geschrieben werden. Wenn ich dann List allHorses = aHorseFacade.findAll(); verwende, um eine Liste mit allen Einträgen in der Tabelle zu füllen, wird der neueste Eintrag zweimal dupliziert und der vorherige letzte Eintrag ist weg. Wenn ich dann die Anwendung erneut bereitstellen, funktioniert sie wie erwartet und findAll() füllt die Liste wie es sollte. Jeder Rat sehr geschätzt.Java EE findAll() gibt doppelte endgültige Eintrag zu Liste nach dem Schreiben in die Datenbank

+0

Überprüfen Sie Ihre derby.log (aktivieren Sie 'derby.language.logStatementText' wenn nötig), um zu sehen, welche ** tatsächlichen ** SQL-Anweisungen Ihr Programm an Ihre Datenbank ausgibt, und sehen Sie, ob Sie das angezeigte Verhalten verstehen etwas präziser. –

+0

Vielen Dank für den Rat. Sobald es mir schließlich gelungen ist, 'derby.language.logStatementText' zu aktivieren und die Logs zu untersuchen, scheint die Anwendung die korrekten SQL-Anweisungen zu geben. Ich bin ratlos. Die Datenbank wird korrekt geschrieben, aber nachdem 'SELECT IDNUMBER, NAME, USERNAME FROM APP.HORSES' ausgeführt wurde, gibt es nicht zurück, was ich über NetBeans in der PFERDE-Tabelle sehen kann. Danke trotzdem, ich schätze deine Hilfe :) – PaulCWhisp

+1

Heh, ich habe es herausgefunden :) Nach ein wenig mehr lesen, erkannte ich, dass in 'persistence.xml' der Shared Cache Mode auf 'Unspecified' gesetzt wurde. Durch die Einstellung "None" wurde das Problem behoben. Ich brauchte sechs Stunden, um das herauszufinden ... Ich würde weinen, wenn ich nicht so verdammt zufrieden wäre. Nochmals vielen Dank für Ihre Hilfe, Mr. Pendleton. Du kommst herum, ich habe deinen Namen heute an vielen Stellen im Internet gefunden :) – PaulCWhisp

Antwort

1

Das Ändern des Werts des freigegebenen Cache-Modus in persistence.xml von Unspecified zu None behebt das Problem, das ich hatte.

Verwandte Themen