PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

czym jest @JoinColumn i jak jest używany w Hibernate

Powiązanie jednokierunkowe za pośrednictwem tabeli dołączania

@Entity
class Patient {

    @OneToMany
    private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();

}

@Entity
class Vehicle {

}

Powiązanie dwukierunkowe za pośrednictwem tabeli dołączania

@Entity
class Patient {

    @OneToMany
    private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();

}

@Entity
class Vehicle {

    @ManyToOne(fetch = FetchType.LAZY)
    private Patient patient;

}

Powiązanie jednokierunkowe za pomocą klucza obcego

@Entity
class Patient {

    @OneToMany
    @JoinColumn
    private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();

}

@Entity
class Vehicle {

}

Powiązanie dwukierunkowe za pomocą klucza obcego

@Entity
class Patient {

    @OneToMany(mappedBy = "patient")
    private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();

}

@Entity
class Vehicle {

    @ManyToOne(fetch = FetchType.LAZY)
    private Patient patient;

}

Powiązanie dwukierunkowe za pomocą klucza obcego ze specyfikacją nazwy kolumny obcej

@Entity
class Patient {

    @OneToMany(mappedBy = "patient")
    private Collection<Vehicle> vehicles = new ArrayList<Vehicle>();

}

@Entity
class Vehicle {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="patient_id")
    private Patient patient;

}

To jest podstawowy punkt wyjścia do korzystania z @JoinColumn .

Aby sprawdzić, czy klucz obcy (patient_id w Vehicle table) jest naprawdę odwzorowana w tabeli pacjentów, której możesz użyć @JoinColumn(nullable = false)

@Entity
class Vehicle {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name="patient_id", nullable = false)
    private Patient patient

}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobierz rekordy, które są niezerowe po przecinku w PostgreSQL

  2. Zmień grupę zabezpieczeń w wystąpieniu bazy danych AWS RDS

  3. Wektor geometrii ST_HexagonGrid, aby znaleźć wszystkie punkty

  4. Now() bez strefy czasowej

  5. Nie można odjąć dat naiwnych dla offsetu i uwzględniających offset