
suraj bahl
Ich habe folgende Tabellen, wie ich sie JPA-Entitäten zuordnen kann:
TABLE Event {
EventID
SourceID
....Other event fields
PK (EventID, SourceID)
}
TABLE MEETING {
MeetingID
EventID
SourceID
...Other meeting fields
PK(MeetingID,EventID, SourceID)
FK(EventID, SourceID) //FK with Event table
}
Die Ereignistabelle hat eine Eins-zu-Viele-Beziehung mit der Besprechungstabelle. Wie kann ich diese bidirektionale Beziehung in JPA abbilden?
@Embeddable
public class EventID {
public int eventID;
public int sourceID;
}
@Entity
public class Event {
@EmbeddedId
public EventID id;
@OneToMany(mappedBy="event")
public Collection<Meeting> meetings;
}
@Embeddable
public class MeetingID {
public EventID eventID; // corresponds to ID type of Event
public int meetingID;
}
@Entity
public class Meeting {
@EmbeddedId
public MeetingID id;
@MapsId("eventID")
@JoinColumns({
@JoinColumn(name="EventID", referencedColumnName="EventID"),
@JoinColumn(name="SourceID", referencedColumnName="SourceID")
})
@ManyToOne
public Event event;
}
Besprochen in JPA 2.1 Spezifikation, Abschnitt 2.4.1.

Dragan Bozanović
@Entity
public class Event {
@EmbeddedId
private EventId id;
@OneToMany(mappedBy = "event")
private List<Meeting> meetings = new ArrayList<>();
}
@Embeddable
public class EventId implements Serializable {
@Column(name = "EventID")
private Long eventId;
@Column(name = "SourceID")
private Long sourceId;
//implements equals and hashCode
}
@Entity
public class Meeting {
@EmbeddedId
private MeetingId id;
@MapsId("eventId")
@JoinColumns({
@JoinColumn(name="EventID", referencedColumnName="EventID"),
@JoinColumn(name="SourceID", referencedColumnName="SourceID")
})
@ManyToOne
private Event event;
}
@Embeddable
public class MeetingId implements Serializable {
@Column(name = "MeetingID")
private Long meetingId;
private EventId eventId;
//implements equals and hashCode
}
Vielleicht möchten Sie sich eine ähnliche Frage ansehen, um weitere Details zu erhalten.
10148000cookie-checkJPA, wie man den zusammengesetzten Fremdschlüssel zum Bestandteil des zusammengesetzten Primärschlüssels machtyes
Wir haben verstanden, was Sie sagen möchten, aber Sie können Ihre Frage bearbeiten. Eine Tabelle kann nicht mehrere Primärschlüssel haben. stackoverflow.com/questions/20742922/…
– Raman Sahasi
13. Juli 2015 um 17:28 Uhr