Używam trybu hibernacji, a za każdym razem, gdy próbuję dodać rekord, opuszcza on tabelę i dodaje ją ponownie. Nigdy nie korzysta z istniejącej tabeli i nie wprowadza na nią zmian.Tworzenie tabel Hibernuj a nie upuszczanie
To jest odpowiednia część mojego hibernate.cfg.xml
:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
<property name="hibernate.connection.url">jdbc:derby://localhost:1527/sample</property>
<property name="hibernate.connection.username">user</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name = "current_session_context_class">thread</property>
<!-- Mapping the entities -->
<mapping class="inputDetails.Table1"/>
<mapping class="inputDetails.Table2"/>
<!--mapping resource="contact.hbm.xml"/-->
</session-factory>
</hibernate-configuration>
ten sposób mogę zapisać danych:
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.getCurrentSession();
session.beginTransaction();
//...
session.save(newrecord)
session.getTransaction().commit();
Czy istnieje sposób, aby sesja załadowała już istniejącą zawartość bazy danych? W bazie danych znajdują się wartości po tym, jak aplikacja przestanie działać, a kiedy ponownie uruchomię aplikację, chcę, aby dodała ona rekordy do tego, co już jest w bazie danych. – Sujen
Przeczytaj ponownie moją odpowiedź i przeczytaj instrukcję obsługi. Używając hibernate.hbm2ddl.auto = auto, mówisz hibernacji, aby aktualizować schemat za każdym razem, gdy tworzysz fabrykę sesji. Więc odtwarza stół. Jest to przydatne do szybkich testów z pustą bazą danych. Jeśli masz jakieś dane, które chcesz zachować, zmień schemat ręcznie i usuń tę opcję konfiguracji z pliku konfiguracyjnego. –
W porządku, byłem zdezorientowany, ponieważ myślałem, że ta własność została użyta do przechowywania zawartości z bazy danych, zamiast jej odtworzenia (coś, co przeczytałem gdzieś indziej i myślę, że okazuje się być przeciwieństwem tego, co myślałem). Dzięki, wypróbuję Twoje rozwiązanie, gdy dostanę szansę. – Sujen