Netbeans i Hibernate

0

Witam. Miałem projekt, w którym korzystałem z EclipseLink jako dostawcy JPA, chciałem przesiąść się na Hibernate, ale mam pewien problem. W netbeans miałem stworzony projekt EAR, który dzielił aplikację na projekt EJB i WAR. Jeśli chodzi o konfigurowanie Hibernate w Netbeans korzystałem z tutoriala: https://netbeans.org/kb/docs/web/hibernate-webapp.html
Jednak jedna rzecz mnie zdziwiła, JPA jest częścią EJB, więc wydawałoby się, że wszelkie pliki powinny znajdować się w podprojekcie EJB a nie WAR. Jednak żeby dodać Hibernate do projektu muszę wybrać projekt WAR, properties, frameworks i Hibernate. Przez co potem wszelkie pliki Hibernate muszę dodawać do pliku WAR. Takie jak moje klasy encyjne. Logiczniejsze mi się wydaje żeby te pliki znajdowały się w podprojekcie EJB a nie WAR. Przez to, że znajdują się w WAR, to moje komponenty EJB, które wykonują operacje na klasach nie mają dostępu do tych klas encyjnych, bo nie mogę zaimportować do nich paczki z nimi...

W takim wypadku podprojekt EJB jakby tracił w ogóle sens. Czy muszę wszystkie pliki Hibernate umieszczać w podprojekcie WAR? Na logikę powinny one znajdować się w podprojekcie EJB.

1

o_O?
JPA jest częścią specyfikacji EJB 3, to prawda, ale technicznie rzecz biorąc nijak się mają @Entity do beanów EJB ;]
Gdzie mają być specyfikacje klas encyjnych? Ano tam gdzie ich używasz, jak nie trudno się domyślić. Jeśli warstwa EJB służy ci jako "proxy" do bazy to pewnie potrzebujesz je tylko tam. Ale z tego co opisujesz to korzystasz widocznie z tych klas encyjnych w projekcie WAR. Jeśli używasz ich i tu i tu, to najlogiczniej byłoby zrobić z nich osobnego jara importowanego do obu projektów. Najwygodniej byłoby użyć do tego wszystkiego mavena i porobić w nim odpowiednie moduły a nie upychać wszytko kijem do jednego miejsca.

0

Ok, ale dlaczego jeśli mam folder model z klasami encyjnymi w podpprojekcie WAR to nie mogę zaimportować do klas podprojektu EJB tych klas encyjnych? Wpisuje import i dalej ścieżkę, ale nie widzi folderów z podprojektu WAR. W drugą stronę, jeśli miałęm klasy encyjne w podprojekcie EJB to mogłem importować je do klasy znajdujących się w podprojekcie WAR.

1

Bo twoje ścieżki i foldery nie mają żadnego znaczenia. Mogłeś tak zrobić bo IDE automatycznie ustawiło ci zależność projektu WAR od EAR, więc klasy z EAR były widoczne w build path projektu WAR. Ale nie możesz zrobić zależności krzyżowej, więc jeszcze raz mówię: zrób osobny moduł na elementy "wspólne".

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