我有一个用户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方法 –