Witam.
Opiszę najpierw projekt (część). Programuję w środowisku NetBeans, baza danych Postgresql 9.4, Hibernate.
Mam powiedzmy 3 tabele w bazie: pracownik, modyfikacja, uzytkownik. W tabeli pracownik są dane osobowe, tabela uzytkownik to dane do logowania (id, login, haslo, imie, nazwisko), tabela modyfikacja jest na potrzeby logowania (zbierania) zmian w tabeli pracownik i zawiera kolumny: id, data, pole, wartosc_przed, wartosc_po, uzytkownik. Czyli tutaj zapisuje się kiedy, z jakiej wartości na jaką zmienił ktoś (użytkownik zalogowany). Zmiany te są do niej wstawiane poprzez trigger na tabeli pracownicy i odpowiedniej funkcji, która wie jakie pole było zmieniane (instrukcje if oraz insert). Natomiast pozostała mi kwestia zalogowanego użytkownika. Aplikacja w Javie jest desktopowa, na początku włącza się okienko logowania, sprawdzany jest login i hasło, jest też możliwość stworzenia nowego konta. To sprawdzanie i zakładanie konta wykorzystuje persistence.xml, w którym "na sztywno" jest wpisane po jakim koncie Postgresql ma się łączyć z bazą. Zalogować też się można ale po tych danych z persistecne.xml.
Jak mam zrobić aby trigger na tabeli pracownicy wiedział jaki user się zalogował (z tabeli uzytkownik) i był wpisany w pole uzytkownik w tabeli modyfikacja? Gdy wpiszę CURRENT_USER w funkcji dla triggera to zawsze będzie to user Postgresql, czyli zawsze ten sam z persistence.xml.
Czy lepiej nie mieć tabeli uzytkownik ale za to tworzyć userów w Postgresql? Tylko wtedy jak robić logowanie do bazy po tym userze jak wykorzystuję persistence.xml, w którym jest wpisany już inny użytkownik?