在Spring MVC应用程序中使用Hibernate和JPA,我想建立一个映射,其基本数据表有两列主键的实体。 我怎样才能改变我下面的代码来得到它的工作?
我创建了一个名为的EmbeddedId conceptPK
,但我收到以下错误信息:
Caused by: org.hibernate.MappingException:
Unable to find column with logical name: conceptPK
in org.hibernate.mapping.Table(sct2_concept) and its related supertables and secondary tables
在实体类,我设置了用下面的代码中的主键:
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name="id", column=@Column(name="id")),
@AttributeOverride(name="effectiveTime", column=@Column(name="effectiveTime"))
})
private ConceptPK conceptPK;
嵌入式ConceptPK类如下:
@Embeddable
class ConceptPK implements Serializable {
@Column(name="id", nullable=false)
protected BigInteger id;
@Column(name="effectiveTime", nullable=false)
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime effectiveTime;
/** getters and setters **/
public DateTime getEffectiveTime(){return effectiveTime;}
public void setEffectiveTime(DateTime ad){effectiveTime=ad;}
public void setId(BigInteger id) {this.id = id;}
public BigInteger getId() {return id;}
}
为了便于阅读,我已经上传的完整代码和完整的堆栈跟踪到文件共享网站,而不是在这里创建过长的帖子。
你可以阅读完整的代码the class above
在文件共享网站通过点击这个链接 。
你可以阅读代码, a second class
引用一流的,在这个环节 。
你可以阅读代码, a third class
引用一流的,在这个环节 。
你可以阅读SQL code
创建基础数据表通过点击这个链接 。
你可以阅读的文件共享网站的完整的堆栈跟踪通过点击这个链接 。