我得到異常:org.hibernate.AnnotationException: No identifier specified for entity
Hibernate的實體不PK,但有FK
我知道,休眠必須@Id在實體類,但在我的表沒有主鍵只有兩個外鍵。我如何映射hibernate實體類沒有錯誤?
例如類。
@Entity
@Table(name="building_block")
public class BuildingBlock implements Serializable {
private Integer archId;
private Integer mirrorId; //foreign key to Mirror table
private Integer makeId; //foreign key to Maker table
private Integer sweepId;
private String search;
private Integer length;
private Date createDate;
@Column(name="arch_id")
public Integer getArchId() {
return ArchId;
}
public void setArchId(Integer ArchId) {
this.ArchId = ArchId;
}
@Column(name="mirror_id")
public Integer getMirrorId() {
return mirrorId;
}
public void setMirrorId(Integer mirrorId) {
this.mirrorId = mirrorId;
}
@Column(name="make_id")
public Integer getMakeId() {
return makeId;
}
public void setMakeId(Integer makeId) {
this.makeId = makeId;
}
...
@Column(name="create_date")
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}
對應的SQL表是什麼樣的?也就是說,哪些列構成了表的主鍵(聲明或暗示)? –
雖然完全可以在Hibernate中添加複合PK(請參閱http://stackoverflow.com/questions/13936340/how-to-create-hibernate-composite-key-using-annotations),但我會勸阻它,除非你正在處理您無法執行任何模式更改的舊數據庫。 –