Ich habe eine Frage zur Sichtbarkeit von Daten in Datenbankansichten. Ich verwende Oracle. Ich habe eine Tabelle myscheme.users und eine Tabelle global.users (myscheme und global sind Schemata) Im globalen Schema gibt es eine Ansicht "globalusers", die beide Benutzertabellen zusammenfasst.
Ich habe eine Java-Anwendung, die einen neuen Benutzer in der Tabelle myscheme.users einfügt. Danach wird eine Abfrage für den neuen Benutzer in der globalusers-Ansicht durchgeführt, um den neu erstellten Benutzer zu laden. All dies geschieht innerhalb der gleichen Transaktion. Meine Frage ist nun, warum ist der neu erstellte Benutzer in der Tabelle myscheme.users sichtbar, aber nicht in der globalusers-Ansicht? Wenn die Transaktion geschlossen wurde, ist der Benutzer auch in der Globaluser-Ansicht zu sehen.
Meine Anwendung wird in einem JBoss 5 mit Hibernate ausgeführt.
Die Ansicht wird auf diese Weise definiert:
CREATE OR REPLACE VIEW V_USERACCOUNT AS
SELECT u.USERACCOUNT_ID,u.USERNAME,u.INITIALS,u.COMMONNAME,u.PASSWORD,'local' AS source
FROM "USERACCOUNT" u
UNION
SELECT u1.USERACCOUNT_ID,u1.USERNAME,u1.INITIALS,u1.COMMONNAME,u1.PASSWORD 'global' AS source
FROM GLOBAL."USERACCOUNT" u1