Wie definiere ich @OneToMany in der übergeordneten Entität, wenn das untergeordnete Element eine zusammengesetzte PK hat?
MyParent
class hat zwei untergeordnete Klassen:Child
undParentHobby
. Die Kinderklasse hat eine singuläre PK und das@OneToMany
mapping drauf klappt. Das Problem ist, dass ich nicht weiß, wie ich es der ParentHobby-Klasse zuordnen soll, die eine zusammengesetzte PK hat.
Elternteil
//this works
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", fetch = FetchType.EAGER)
private List<Child> childList;
//this DOES NOT work
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", fetch = FetchType.EAGER)
private List<ParentHobby> hobbyList;
Kind
@Entity
@Table(name="CHILD")
public class Child {
@Id
@SequenceGenerator(name="CHILD_SEQ", sequenceName="CHILD_DB_SEQ", allocationSize = 1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="CHILD_SEQ")
@Column(name="CHILD_ID")
private long childID;
@JoinColumn(name = "PARENT_ID", referencedColumnName = "PARENT_ID", insertable = true, updatable = true)
@ManyToOne(optional = true)
private Parent parent;
ParentHobby:
@ Entity @Table (name = "PARENT_HOBBY") öffentliche Klasse ParentHobby
@EmbeddedId
private ParentHobbyPK id;
ParentHobbyPK:
@Embeddable
public class ParentHobbyPK {
@JoinColumn(name = "PARENT_ID", referencedColumnName = "PARENT_ID", insertable = true, updatable = true)
@ManyToOne(optional = true)
private Parent parent;
@Column(name="HOBBY_ID")
private String hobbyID;
Die Ausnahme, die ich beim Kompilieren bekomme, ist:
mappedBy reference an unknown target entity property: ParentHobby.parent in Parent.hobbyList
Wie kann ich eine @ OneToMany-Beziehung in einer übergeordneten Entität definieren, wenn das untergeordnete Element einen zusammengesetzten Primärschlüssel hat?
ÄHNLICH
@ OneToMany-Beziehung mit zusammengesetztem Schlüssel
Hibernate Entity-Zuordnung, wenn der Fremdschlüssel Teil des zusammengesetzten Primärschlüssels ist?