我使用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的属性
答案 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;
}