2011-07-24 15 views
5

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:

+0

Czy kiedykolwiek znalazłeś jakieś rozwiązanie? Jestem także zainteresowany, wydaje się, że Grails jest w stanie to zrobić w ramach GORM. – codevour

Odpowiedz

5

Tak, jest dobry artykuł na infoq about adding fields dynamically.

+0

Dziękuję bardzo za to wspaniałe odniesienie. Obecnie pracuję nad innymi projektami, ale spróbuję tego, jak tylko znajdę czas. – juniper

+0

Czy możesz podsumować główne punkty artykułu, aby zmniejszyć zależność tej odpowiedzi od linku? – Jasper