JPA wylaczenie tworzenie relacji

0

Jest możliwość wyłączenia w JPA (EclipseLink) tworzenia kluczy obcych na poziomie bazy danych? Chodzi mi o to żeby w encjach mieć te powiązania oznaczone ale żeby EclipseLink nie tworzył ich po stronie bazy.

0

Adnotacje możesz nadpisywać xmlami, tak przynajmniej jest w Hibernate.
Pozostaje jeszcze pytanie po co?
Po co w Encjach chcesz mieć adnotacje dla JPA, których implementacja JPA ma nie używa?
Jak ktoś będzie po tobie czytać ten kod to będzie "WTF na WTF".
Jeśli chcesz mieć w kodzie informacje tylko dla siebie to po to są komentarze

Edit: Można też wbić się w kodzie w framework JPA po procesie wczytywania konfiguracji (i znów tak przynajmniej jest w Hibernate)

0

Ogólnie nie chce takiego mechanizmu stosować ale ktoś zapodał dobrą rozkmine w pracy i ciekawi mnie czy jest to możliwe. Nie chodzi mi oto żeby relacje nie działały, tylko aby one nie istniały po stronie bazy a tylko w JPA. Czyli encje są normalnie oznaczone adnotacjami razem z relacjami i JPA będzie je uwzględniał ale na bazie już tych relacji nie będzie (bez kluczy obcych na bazie)

0

w Hibernate jest metoda LocalSessionFactoryBean.buildSessionFactory (https://docs.spring.io/spring/docs/4.1.5.RELEASE/javadoc-api/org/springframework/orm/hibernate4/LocalSessionFactoryBean.html#buildSessionFactory-org.springframework.orm.hibernate4.LocalSessionFactoryBuilder-)
za pomocą której możesz wykonać "niestandarwą inicjalizację" a w praktyce mnóstwo pozmieniać. Podejrzewam że w EclipseLink bedzie podobnie

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