我需要创建一个复合键。键的一个属性位于我无法修改的 MappedSuperClass 中。键的另一个属性在派生类中,它是一个实体类。但是,我在执行以下内容时遇到运行时错误,它表示基类的属性(也存在于@IdClass 中)不是实体类(派生类)的属性。请指导我如何处理这种情况。
@MappedSuperClass
public abstract class Base
{
@Id
protected String id;
}
@Entity
@Idclass(DerivedPK.class)
public Derived extends Base
{
@Id
protected float version;
}
public class DerivedPK
{
private String id;
private float version;
}
我收到一条错误消息,提示在“Derived”类中找不到 DerivedPK 中存在的属性“id”。使用的休眠版本是 4.1.1.Final。