Obecnie pracuję nad aplikacją przy użyciu Hibernate i chcemy mieć możliwość wstawiania kolumn i tabel w locie, tj. W czasie wykonywania, i kontynuować pracę z aplikacją bez konieczności jej ponownego uruchamiania. Obecnie budujemy jednostki, ale jeszcze ich nie używamy. Mamy stary kod C (który ma zostać poddany migracji do Javy), który obsługuje naszą logikę biznesową i wykonuje połączenia do Java/Hibernate przez JNI, aby uzyskać rekordy z bazy danych. Po przeczytaniu kilku wątków (patrz poniżej linków) oraz odniesienie hibernacji 3.6 Mam jeszcze kilka pytań:Dodawanie tabel i kolumn w stanie hibernacji w locie?
1. Gdybym osadzić SchemaUpdate w mojej aplikacji, jak wspomniano tutaj: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/toolsetguide.html#toolsetguide-s1-6 Czy wtedy trzeba odtworzyć SessionFactory (co jest kosztowną operacją), nawet jeśli nie będę korzystał z encji (tak jak obecnie, ale w przyszłości oczywiście to się zmieni)? Wówczas stara sesja będzie nieważna, tj. Będę musiała migrować obiekty już znajdujące się w pamięci i utrzymywane przez sesję do nowej sesji? Czy to w jakiś sposób jest możliwe? Czy Hibernate zachowuje informacje poza ORM dla encji dotyczących schematów? Czy nie wystarczy unieważnienie pamięci podręcznej (sesja, tj. Pierwszy poziom), zgodnie z propozycją tutaj: changes to the schema while hibernate is running
2. Co powiesz na zmianę kolumn? Przypuszczam, że nadal jest tak, jak @Bozho napisał: "Niestety, hibernacja nie może zmienić kolumn."? Hibernate to update table schema
To są moje dotychczasowe pytania, dziękuję za pomoc.
Dalsze odniesienia czytałem:
- Zarządzanie unmapped Stoły z Hibernate http://blog.codehangover.com/536/
- Update database schema with hibernate
- Bardzo blisko do mojego pytania, wspomina pomocniczych obiektów bazy danych: Enhance Hibernate Database Schema?
- pomocnicze obiekty bazy danych : http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-database-object
- http://www.liquibase.org/
- http://www.alittlemadness.com/2006/08/28/incremental-schema-upgrades-using-hibernate/
Czy kiedykolwiek znalazłeś jakieś rozwiązanie? Jestem także zainteresowany, wydaje się, że Grails jest w stanie to zrobić w ramach GORM. – codevour