我有一個用戶DAO休眠給出兩行相同的,而不是兩個不同的行
@Entity
@Table(name="EBIGUSERTIM")
public class EbigUser {
private String id;
private Integer source;
private String entryscheme;
private String fullName;
private String email;
private Long flags;
private String status;
private String createdBy;
private Date createdStamp;
private String modifiedBy;
private Date modifiedStamp;
@Id
@Column(name="ID")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Id
@Column(name="SOURCE")
public Integer getSource() {
return source;
}
public void setSource(Integer source) {
this.source = source;
}
@Column(name="ENTRYSCHEME")
public String getEntryscheme() {
return entryscheme;
}
public void setEntryscheme(String entryscheme) {
this.entryscheme = entryscheme;
}
@Column(name="FULLNAME")
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
@Column(name="EMAIL")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name="FLAGS")
public Long getFlags() {
return flags;
}
public void setFlags(Long flags) {
this.flags = flags;
}
@Column(name="STATUS")
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
@Column(name="CREATEDBY")
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
@Column(name="CREATEDSTAMP")
public Date getCreatedStamp() {
return createdStamp;
}
public void setCreatedStamp(Date createdStamp) {
this.createdStamp = createdStamp;
}
@Column(name="MODIFIEDBY")
public String getModifiedBy() {
return modifiedBy;
}
public void setModifiedBy(String modifiedBy) {
this.modifiedBy = modifiedBy;
}
@Column(name="MODIFIEDSTAMP")
public Date getModifiedStamp() {
return modifiedStamp;
}
public void setModifiedStamp(Date modifiedStamp) {
this.modifiedStamp = modifiedStamp;
}
我正在選擇出來的分貝的2行。 sql works
select * from ebigusertim where id='blah'
它返回2個不同的行。當我使用hibernate查詢數據時,似乎沒有爲列表中的每個條目分配對象內存。因此,我得到了與同一個對象的列表中的2個條目。
Criteria userCriteria = session.createCriteria(EbigUser.class);
userCriteria.add(Restrictions.eq("id", id));
userlist = userCriteria.list();
請爲您的問題選擇一個更好的標題,標題中的「問題」被禁止使用堆棧溢出,並且設法潛入其中的唯一原因是因爲您對程序員提出此問題,如果您嘗試過,系統會自動拒絕在Stack Overflow上詢問這個問題。一個更具描述性的標題將幫助您獲得更好的答案,並儘可能針對實際問題制定標題。而當你處理它時,你的代碼格式有幾個問題,我試圖修復它們,但由於標題中的「問題」而無法提交編輯。請修復這些問題。謝謝。 – yannis
根據您的唯一列組合合適地重寫equals和hashcode方法 –