Ich habe eine Verbindung Primärschlüssel (IDHOLIDAYPACKAGE, IDHOLIDAYPACKAGEVARIANT)
in Tabelle HolidayPackageVariant
wo IDHOLIDAYPACKAGE
zu EinheitHolidayPackage mit einer Vielen zu Ein Beziehung zwischen HolidayPackageVariant und HolidayPackage bezieht.Warum funktioniert meine EmbeddedId im Ruhezustand nicht?
Wenn ich versuche, die compund PK-Mapping in HolidayPackageVariant zu tun, ich folgende Fehlermeldung erhalten:
Initial SessionFactory creation failed.org.hibernate.annotations.common.AssertionFailure: Declaring class is not found in the inheritance state hierarchy: org.wah.model.holidaypackage.HolidayPackageVariantPrimaryKey
Kann jemand bitte sagen Sie mir, was mache ich hier falsch?
MY POJOs wie folgt aussehen:
HolidayPackageVariant:
@Entity
@Table(name="HOLIDAYPACKAGEVARIANT")
public final class HolidayPackageVariant {
private HolidayPackageVariantPrimaryKey idCompound;
@EmbeddedId
public HolidayPackageVariantPrimaryKey getIdCompound() {
return idCompound;
}
// other code
}
HolidayPackageVariantPrimaryKey
@Embeddable
public final class HolidayPackageVariantPrimaryKey implements Serializable {
private Integer idHolidayPackageVariant;
private HolidayPackage holidayPackage;
public HolidayPackageVariantPrimaryKey(){}
public HolidayPackageVariantPrimaryKey(int id, HolidayPackage pkg){
setIdHolidayPackageVariant(id);
setHolidayPackage(pkg);
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IDHOLIDAYPACKAGEVARIANT", nullable = false)
public Integer getIdHolidayPackageVariant() {
return idHolidayPackageVariant;
}
@Id
@ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.ALL})
@JoinColumn(name="IDHOLIDAYPACKAGE", nullable=false)
public HolidayPackage getHolidayPackage() {
return holidayPackage;
}
// equals and hashCode
}
HolidayPackage
public final class HolidayPackage {
private Set<HolidayPackageVariant> holidayPackageVariants = new HashSet<HolidayPackageVariant>(0);
@OneToMany(fetch=FetchType.LAZY, cascade={CascadeType.ALL}, mappedBy = "idCompound.holidayPackage")
public Set<HolidayPackageVariant> getHolidayPackageVariants() {
return holidayPackageVariants;
}
// other code
}
Hallo @brainydexter, Könnten Sie bitte die richtige Antwort auf diese Frage ändern? Ich musste es reparieren, dann kam ich zurück und poste die Antwort, nur um zu erkennen, dass es schon da war. – coderatchet
@coderatschet fertig. Danke, dass du es aufgezeigt hast. Da ich nicht mehr Winterschlaf machte, fiel das von meinem Radar ab. – brainydexter