Tôi có một hợp chất Primary Key (IDHOLIDAYPACKAGE, IDHOLIDAYPACKAGEVARIANT)
trong bảng HolidayPackageVariant
nơi IDHOLIDAYPACKAGE
đề cập đến thực thể HolidayPackage với một Nhiều để Một mối quan hệ giữa HolidayPackageVariant và HolidayPackage.Tại sao EmbeddedId của tôi ở chế độ ngủ đông không hoạt động?
Khi tôi cố gắng làm việc lập bản đồ PK compund trong HolidayPackageVariant, tôi nhận được lỗi sau:
Initial SessionFactory creation failed.org.hibernate.annotations.common.AssertionFailure: Declaring class is not found in the inheritance state hierarchy: org.wah.model.holidaypackage.HolidayPackageVariantPrimaryKey
Ai đó có thể xin vui lòng cho tôi biết những gì tôi làm sai ở đây?
POJO MY trông như thế này:
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
}
Xin chào @brainydexter, Bạn có thể vui lòng thay đổi câu trả lời đúng cho câu hỏi này không? Tôi phải sửa nó rồi quay lại đây và đăng câu trả lời chỉ để nhận ra nó đã ở đó rồi. – coderatchet
@coderatchet đã hoàn tất. Cảm ơn đã chỉ ra điều đó. Không làm công cụ ngủ đông nữa nên điều này rơi khỏi radar của tôi. – brainydexter