2016-08-15 110 views
0

我正在運行HQL查詢以獲得結果MS SQL Server。休眠生成的SQL提供了正確的輸出(例如2個結果),但Hibernate只提取一個結果。即使在堆棧跟蹤中,它也顯示查詢返回了一個結果。我嘗試過使用desc和asc命令,但它總是獲得最低ID值的命令。我看過我的模型,但似乎沒有錯。HQL僅從多個結果中提取一個結果

我正在使用createquery("my query").list()方法。有人遇到同樣的問題嗎?

createquery("from Analysis a where a.sample = *someNumber* ").list()

的HQL生成的SQL給出正確的結果,當我在數據庫上運行此

select analysis0_.idAnalysis as idAnalys1_5_, analysis0_.changes_timestamp as changes_2_5_, analysis0_.Analysis_Done_Date as Analysis3_5_, analysis0_.Analysis_Remarks as Analysis4_5_, analysis0_.Sample_idSample as Sample_i5_5_, analysis0_.Analysis_Start_Date as Analysis6_5_, analysis0_.Analysis_Status as Analysis7_5_ from Re_at_AIM_User.analysis analysis0_ where analysis0_.Sample_idSample=*someNumber*

公共類分析實現Serializable {

private static final long serialVersionUID = -1216945678610624994L; 

@Column(name = "changes_timestamp", columnDefinition = "datetime") 
@Temporal(TemporalType.TIMESTAMP) 
private Date changesTimestamp; 


@Column(name = "Analysis_Done_Date", columnDefinition = "datetime") 
@Temporal(TemporalType.TIMESTAMP) 
private Date doneDate; 

@Id 
@Column(name = "idAnalysis", columnDefinition = "bigint") 
private Integer id; 

@Column(name = "Analysis_Remarks") 
private String remarks; 

@Column(name = "Analysis_Start_Date", columnDefinition = "datetime") 
@Temporal(TemporalType.TIMESTAMP) 
private Date startDate; 

@Column(name = "Analysis_Status") 
private String status; 

@ManyToOne() 
@JoinColumn(name = "Sample_idSample") 
private Sample sample; 

public Analysis() { 
} 

public Date getChangesTimestamp() { 
    return changesTimestamp; 
} 



public Date getDoneDate() { 
    return doneDate; 
} 

public Integer getId() { 
    return id; 
} 


public String getRemarks() { 
    return remarks; 
} 

public Date getStartDate() { 
    return startDate; 
} 

public String getStatus() { 
    return status; 
} 

public void setChangesTimestamp(Date changesTimestamp) { 
    this.changesTimestamp = changesTimestamp; 
} 



public void setDoneDate(Date doneDate) { 
    this.doneDate = doneDate; 
} 

public void setId(Integer idAnalysis) { 
    this.id = idAnalysis; 
} 

public void setRemarks(String remarks) { 
    this.remarks = remarks; 
} 

public void setStartDate(Date startDate) { 
    this.startDate = startDate; 
} 

public void setStatus(String status) { 
    this.status = status; 
} 

public Sample getSample() { 
    return sample; 
} 

public void setSample(Sample sample) { 
    this.sample = sample; 
} 

}

+0

您可以請分享您正在使用的查詢來獲取數據嗎? –

回答

0

這是一個可怕的錯誤。正在使用測試數據庫。正式的最愚蠢的第一個問題。對此感到抱歉。