/ / Jak opcjonalnie zachować tabelę dodatkową w Eclipselink - jpa, eclipselink

Jak opcjonalnie zachować tabelę pomocniczą w Eclipselink - jpa, eclipselink

Pracuję z Eclipselink i mam problem z używaniem tabeli dodatkowej. Mam dwie tabele, jak poniżej.

  1. Student z kolumnami student_id (Primary Key), student_name itp.

  2. Rejestracja w kolumnach student_id (relacja FK z tabelą Studenta), nazwa kursu (bez ograniczenia zerowego) itp.

Warunkiem jest, że student może, ale nie musi, zarejestrować się. Jeśli uczeń ma rejestrację, dane należy również utrwalić w Tabeli rejestracji. W przeciwnym razie tylko tabela Studentów powinna zostać utrwalona.

Mój fragment kodu wygląda tak, jak poniżej.

Student.java
------------

@Entity
@Table(name = "STUDENT")
@SecondaryTable(name = "REGISTRATION")

@Id
@Column(name = "STUDENT_ID")
private long studentId;

@Basic(optional=true)
@Column(name = "COURSE_NAME", table = "REGISTRATION")
private String courseName;

Próbowałem następujących scenariuszy. 1. Student z rejestracją - działa dobrze. Dane są dodawane zarówno do tabel Studentów, jak i Rejestracyjnych 2. Uczeń bez rejestracji - błąd, taki jak „COURSE_NAME”, nie może być zerowy.

Czy istnieje sposób, aby zapobiec utrzymywaniu się w tabeli dodatkowej?

Każda pomoc jest doceniana.

Dzięki!!!

Odpowiedzi:

0 dla odpowiedzi № 1

Jak stwierdza @Eelke, najlepszym rozwiązaniem jest zdefiniowanie dwóch klas i relacji OneToOne.

Potencjalnie możesz również użyć dziedziczenia, mając Ucznia i Zarejestrowanego Studenta, który dodaje dodatkową tabelę. Ale relacja jest znacznie lepszym projektem.