【发布时间】:2011-07-24 05:41:26
【问题描述】:
我有两节课。一个是实体类,另一个是复合键类。
代码如下。
@Entity
public class Supply {
@Embeddable
class Id implements Serializable {
@Column(name = "supplier_id")
private long supplierId;
@Column(name = "merchandise_id")
private long merchandiseId;
public Id() {
}
public Id(long sId, long mId) {
this.supplierId = sId;
this.merchandiseId = mId;
}
}
@EmbeddedId
private Id id = new Id();
}
如果我使用尝试查找
from Supply where merchandise_id=%d and supplier_id=%d
Hibernate 会抛出异常,即:
No default constructor for entity: com.entity.Supply$Id; nested exception is org.hibernate.InstantiationException: No default constructor for entity: com.entity.Supply$Id
但是,我发现如果我将 class Id 更改为 static。一切都会好起来的。
我只是好奇这些事情是如何发生的。
【问题讨论】:
-
如果您在此帖子中包含休眠警告 ID“HHH000182”,将会有很大帮助。静态的东西为我解决了问题,但很难找到这个答案!
标签: java hibernate composite-key