在实体中找不到@IdClass 的属性

rob*_*del 3 hibernate jpa

我使用 spring boot 2、jpa 和 hibernate

用这个代码

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Samplings {

    @Id
    @GenericGenerator(name = "samplings_id_seq", strategy="com.lcm.model.SamplingSequenceGenerator")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "samplings_id_seq")
    private Integer id;

    @OneToMany(mappedBy = "sampling")
    private List<Samples> samples = new ArrayList<>();

}   

@Entity
@IdClass(SamplesPK.class)
public class Samples  {

    @Id
    private String sampleLetter;

    @Id
    @ManyToOne(optional = false)
    @JoinColumns({
        @JoinColumn(name = "id", referencedColumnName = "id")})
    private Samplings sampling;
}   

public class SamplesPK implements Serializable {

    private Integer id;

    private String sampleLetter;

    public SamplesPK(Integer id, String sampleLetter) {
        this.id = id;
        this.sampleLetter = sampleLetter;
    }

    .... //get / set
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

org.hibernate.AnnotationException:在实体 com.lcm.model.Samples::id 中找不到 @IdClass 的属性

jhe*_*que 7

主键类中的字段或属性的名称与实体的主键字段或属性的名称必须对应,并且它们的类型必须相同。从这里的文档。

您的Samples类的 id 应该与您的SamplesPK.

@Id private Integer idSamples班上应该有一个