![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam problem z dostosowaniem środowiska pod moje wymagania.
Używam mysql-workbench-exporter do generowania klas annotation entities w katalogu Entity. I teraz próbuje stworzyć mechanizm podobny do tego używanego w symfony 1.4. Exporter generuje klasy, ja natomiast chcę po tych klasach dziedziczyć i rozszerzać je według potrzeb. Chcę uczynić ten proces w pełni automatycznym: 1. Generowanie klas Entities z workbencha, 2. Update schemy, 3. Zmiany manualne w klasach dziedziczących. Poniżej przykład tego co chcę osiągnąć: 1. Plik generowany z workbencha:
2. Plik dziedziczący po ArticleBase:
Pojawił mi się problem... A mianowicie ogólnodostępny exporter workbencha, co udało mi się przeanalizować (może nie zauważyłem tam jakiejś opcji) generuje tylko klasy z domyślną nazwą (nie można wymusić żeby zamiast Article wygenerował nazwę ArticleBase), co niestety nie pozwala na prawidłowe działanie Entities (klasa instancji domyślnie musi mieć zawsze nazwę Article). I teraz pytanie. Czy ktoś już kiedyś zastanawiał się nad takim problemem i znalazł rozwiązanie? Może istnieje jakiś prostszy sposób na to? Może można w inny sposób dojść do tego samego? Bo inaczej to zostaje już tylko grzebanie w kodzie tego exportera... Zastanawia mnie też dlaczego nigdzie nie mogę znaleźć tak typowego przykładu z dziedziczeniem klas entities jako podstawowego rozwiązania dla modelu... Mieszanie w podstawowych klasach jest dobre, jak model jest tworzony bezpośrednio z pliku annotations, ale dla źródeł zewnętrznych bez klasy bazowej raczej się nie obejdzie... Dodatkowo jeszcze prośba o zweryfikowanie powyższych klas, bo wyrzuca błąd przy SQL w mapowaniu klasy. W kontrolerze korzystam z kodu:
An exception occurred while executing 'INSERT INTO Article (title) VALUES (?)' with params {"1":"aa"}: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'livesoft_test.Article' doesn't exist Zaznaczam, że bez dziedziczenia problem nie występuje. Prośba o poprawienie kodu, bo już nie wiem w czym jest problem. Jeszcze raz trzeba te annotacje dot. klasy pisać? Ten post edytował blackroger 17.12.2012, 03:29:40 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 05:09 |