Winterschlaf: Onetomany und Onetoone für zwei Klassen in Single_table_StrategyJava

Java-Forum
Anonymous
 Winterschlaf: Onetomany und Onetoone für zwei Klassen in Single_table_Strategy

Post by Anonymous »

Ich habe eine übergeordnete Klasse: Person und zwei untergeordnete Klassen: Hunter und Polizist . Ein Jäger kann mehrere Hunde haben, und ein Polizist kann nur einen Hund haben. Es ist eine unidirektionale Beziehung, das Hund Entität hat nur eine Attributrasse :

Code: Select all

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Person {
private String name;
< /code>
und untergeordnete Klassen: < /p>
@Entity
public class Hunter {
private String forest;

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "hunter_id", referencedColumnName = "id")
private Set dogs;

< /code>
@Entity
public class Policeman {
private String city;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "dog_id")
private Dog dog;
< /code>
It generates table structure like this:
[b]person[/b]
id, name, forest, city, dog_id, person_type
< /code>
[b]dog[/b]:
id, breed, hunter_id
< /code>
So essentially because the Policeman
hat nur einen Tag, die ID des Hundes fk wird persönlich Tabelle eingefügt. Es wäre null für Zeilen, die sich auf einen Jäger beziehen. /> Ich habe mich jedoch gefragt, ob es sich um einen richtigen Ansatz handelt und ob es besser gewesen wäre, nur Person_id fk in der Hundetabelle zu haben und sicherzustellen, dass der Polizist nur einen Hund im Serviceklassen hat?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post