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

时间:2018-10-17 18:46:46

标签: hibernate jpa

我使用Spring Boot 2,JPA和Hibernate

使用此代码

const params = this.route.firstChild.snapshot.params['codigo-pessoal']
        console.info(params)

我收到此错误:

  

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

2 个答案:

答案 0 :(得分:0)

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

您的Samples类的ID应与您的SamplesPK的类型相同。

您的@Id private Integer id课程中应该有一个Samples

答案 1 :(得分:0)

您似乎错过了Samples实体中的SamplesPk.class的某些组件。

它称为Samples :: samplingId

这里有一个示例LINK

编辑:

因此您的实体应如下所示:

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

    @Id
    private String sampleLetter;

    @Id
    private Integer id;

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