sql >> Database >  >> RDS >> PostgreSQL

wat is @JoinColumn en hoe wordt het gebruikt in Hibernate

Een unidirectionele associatie via een join-tabel

@Entity
class Patient {

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

}

@Entity
class Vehicle {

}

Een bidirectionele associatie via een join-tabel

@Entity
class Patient {

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

}

@Entity
class Vehicle {

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

}

Een unidirectionele koppeling via een externe sleutel

@Entity
class Patient {

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

}

@Entity
class Vehicle {

}

Een bidirectionele koppeling via een externe sleutel

@Entity
class Patient {

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

}

@Entity
class Vehicle {

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

}

Een bidirectionele koppeling via een externe sleutel met een specificatie van een vreemde kolomnaam

@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;

}

Dit is het basisbeginpunt voor het gebruik van @JoinColumn .

Om te controleren of de externe sleutel(patient_id in het Vehicle tabel) is echt in kaart gebracht in de patiëntentabel die u kunt gebruiken @JoinColumn(nullable = false)

@Entity
class Vehicle {

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

}


  1. Zoek tekst in velden in elke tabel van een MySQL-database

  2. Parallel Go-tests uitgevoerd tegen een PostgreSQL-database die draait op Docker

  3. Is er zoiets als een zip()-functie in PostgreSQL die twee arrays combineert?

  4. Update het configuratiebestand met uw nieuwe database-instellingen