Hibernate + HSQLDB - konfiguracja,zapisywanie

0

Witam. Mam pewien problem. Otóż zacząłem pewien projekt w Javie z wykożystaniem tytułowych technologii.
Postępowałem zgodnie z tutorialem:
http://jlaskowski.blogspot.com/2006/02/hibernate-tniemy-koszty-dostpu-do.html

I już wyjaśniam w czym problem. Aplikacja działa wedle specyfikacji "kursu".
Jednakże po jej ponownych uruchomieniu programu nie zwiększa się liczba rekordów w bazie (pamięci?).
W tym przypadku nowy user nie został dodany ponownie i wyświetla się na liście cały czas jeden raz.
Zakładam że przyczyną jest tu linijka w pliku hibernate.cfg.xml
<property name="connection.url">jdbc.</property>
jednakże jej zamiana nie wnosi nic więcej oprócz tego że pojawiają się w katalogu pliki...
<property name="connection.url">jdbcfile:plik</property>

Moim celem jest stworzenie aplikacji która będzie już zapisywać rekordy w pliku i je stamtąd wydobywać. (HSQLDB jest również bazą danych lokalną...)
Ciężko mi poprawnie uzupełnić poprawnie plik hibernate.cfg.xml a być może do zapisu jest potrzebny odpowiedni kod, którego brak w moim programie (sesja i transakcja to nie wszystko...)?

Nie wiem jak problem ugryźć więc wszelkie sugestie były by mile widziane.

0

HSQLDB ma taką nie fajną rzecz że oo ile sama baza tworzy się fizycznie na dysku to tworzenie tabel w bazie danych jest kłopotliwe, bo te tworzą się domyślnie w pamięci. Hibernate automatycznie tworzy przy starcie brakujące tabele zgodnie ze specyfikacją SQLa:

CREATE TABLE tabela();

,ale aby tabela została zapisana na dysku należy ją stworzyć tak:

CREATE CACHED TABLE tabela();

mała zmiana i jest bangla. Tutorial rzeczywiście jest fajny, a problem ten rozwiązuje się tworząc samemu bazę danych, a nie stawiając na pana H.

0

Ta zmiana ma być po stronie hibernate? Czy może mam "ręcznie" tworzyć daną baze danych? (dodatkowy kod Javy + SQL-a)
Pytam ponownie poniewać nie wiem czemu czasami hibernate sam dopisuje sobie do pliku *.script kod odpowiedzialny za tworzenie tabeli... (choc nie wiem kiedy...)
Jesli jest to mozlwie chcialbym tworzenie bazy danych zostawic po tej stronie by aplikacja byla pozniej przenosna... I bym nie musial modyfikowac zrodla.

0

moze przeciaz klase org.hibernate.dialect.HSQLDialect swoja klasa, no org.moje.CachedHSQLDialect, ktora zamiast create table zwracalaby string create cached table.
pozdro

0
Koziołek napisał(a)

HSQLDB ma taką nie fajną rzecz że oo ile sama baza tworzy się fizycznie na dysku to tworzenie tabel w bazie danych jest kłopotliwe, bo te tworzą się domyślnie w pamięci. Hibernate automatycznie tworzy przy starcie brakujące tabele zgodnie ze specyfikacją SQLa:

CREATE TABLE tabela();

,ale aby tabela została zapisana na dysku należy ją stworzyć tak:

CREATE CACHED TABLE tabela();

mała zmiana i jest bangla. Tutorial rzeczywiście jest fajny, a problem ten rozwiązuje się tworząc samemu bazę danych, a nie stawiając na pana H.
fs

1 użytkowników online, w tym zalogowanych: 0, gości: 1