JPA Hibernate tabela łącząca z własnym kluczem głównym

0

Cześć,
mam 2 tabele + jedna łącząca, a w nich many-to-many z dodatkowymi kolumnami w tabeli łączącej, więc używam dwóch relacji oneToMany używając composite primary key - EmbeddedId.
Problemy mam podczas zapisywania rekordów do tabeli łączącej, ponieważ ma ona własny klucz Id (PK), ponieważ przy POST request wypluwa mi error null value was generated for class: [ścieżka klasy tabeli łączącej] id. Wiecie może jak dobrze zdefiniować owo Id w klasie?

@Entity
@Table(name = "hospital_doctor")
public class HospitalDoctor {

    @Embeddable
    static class Hosdoc implements Serializable {
        private int hospitalId;
        private int doctorId;

    }

    @EmbeddedId
    @JsonBackReference
    public Hosdoc hosdoc;

    @JsonManagedReference
    @MapsId("DoctorId")
    @ManyToOne(optional = false)
    @JoinColumn(name = "doctorId", referencedColumnName = "id")
    private Doctor doctor;

    @JsonManagedReference
    @MapsId("HospitalId")
    @ManyToOne(optional = false)
    @JoinColumn(name = "hospitalId", referencedColumnName = "id")
    private Hospital hospital;


    //fields of hospitalDoctor table
    private int Id;  // <<<===========  ID, WHICH I NEED TO DEFINE 
    @Temporal(TemporalType.DATE)
    private Date contract_start_date;
    @Temporal(TemporalType.DATE)
    private Date contract_end_date;
    private String position;
    private String supervisor;
    private boolean part_time;


    //GETTERS AND SETTERS....



Dziękuję za zainteresowanie tematem
0

A co jak dasz sobie adnotację @Id i @GeneratedValue ?
Btw. nazwy zmiennych zapisuj camel casem, jeśli chcesz ustawić nazwę kolumny w bazie to od tego masz adnotację @Column

0

Kamilu, dzięki za odpowiedź.
org.hibernate.AnnotationException: com.bartek.hospitaldoctor.HospitalDoctor$Hosdoc must not have @Id properties when used as an @EmbeddedId:
Niestety już tak próbowałem :)

0

Nie możesz mieć 2 primary key w jednej tabeli. Z tego co piszesz wybrałeś 2 klucze primary key: hosdoc i Id.

1 użytkowników online, w tym zalogowanych: 0, gości: 1