2017-07-09 1 views
0

Ich bin neu in hibernate und ich versuche, eine grundlegende Anwendung zu implementieren, die dieses Schema verwendet (es nicht der Notation folgt ich es nur für Klarheit verwenden)Verbundschlüssel für die Tabelle mit Assoziations Anmerkung

enter image description here

Hier ist die meine Klassen

@Entity 
@Table(name = "race") 
public class Race { 
    @Id 
    @GeneratedValue 
    private UUID id; 
    private String name; 
} 

@Entity 
@Table(name="np_character") 
public class NPCharacter { 
    @Id 
    @GeneratedValue 
    private UUID id; 
    @OneToOne 
    private Race race; 
    private String name; 
    private int age; 
} 

@Entity 
@Table(name="main_female_character") 
public class MainFemaleCharacter { 
    @Id 
    @GeneratedValue 
    private UUID id; 
    @OneToOne 
    private Race race; 
    private String name; 
    private int age; 
} 

@Entity 
@Table(name="copulation_registry") 
public class CopulationRegistry { 
    // ?? 
    private NPCharacter npCharacter; 
    // ?? 
    private MainFemaleCharacter femCharacter; 
    private int times; 
} 

Aber ich lief in das Problem mit copulation_registry Klasse. Ich verwendete überall OneToOne Annotation, anstatt Verweise auf Schlüssel zu verwenden. Aber was soll ich hier machen? Paare von id_femPlayer und id_npCharacter sind einzigartig.

Sollte ich EmbeddedId Annotation verwenden oder ist es irgendwie möglich, Assoziationsanmerkungen zu verwenden, um die gleiche Beziehung darzustellen?

Antwort

1
You can annotate class CopulationRegistry with @IdClass 

@Entity 
@IdClass(CopulationRegistryKey.class) 
@Table(name="copulation_registry") 
public class CopulationRegistry { 
    @Id 
    private NPCharacter npCharacter; 
    @Id 
    private MainFemaleCharacter femCharacter; 
    private int times; 
} 


public class CopulationRegistryKey{ 
    private NPCharacter npCharacter; 
    private MainFemaleCharacter femCharacter; 
} 
+0

Aber wie wird es Umgang mit 'NPCharacter' Tabellen und' MainFemaleCharacter' Tabellen? Auch bekomme ich Fehler 'konnte Typ für MainFemaleCharacter bei Tabelle copulation_registry für Spalten Spalte (femCharacter)' nicht bestimmen ' – lapots

Verwandte Themen