【问题标题】:HQL extracting only one result out of multiple resultsHQL 从多个结果中只提取一个结果
【发布时间】:2016-08-15 17:15:41
【问题描述】:

我正在运行 HQL 查询以从 MS SQL Server 获取结果。 hibernate 生成的 SQL 给出了正确的输出(例如,2 个结果),但 Hibernate 只提取一个结果。即使在堆栈跟踪中,它也显示查询返回了一个结果。我尝试过按 desc 和 asc 使用 order,但它总是得到 ID 值最低的那个。我看过我的模型,但它似乎没有错。

我正在使用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*

公共类分析实现可序列化{

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;
}

}

【问题讨论】:

  • 您能分享一下您用来获取数据的查询吗?

标签: java sql-server hibernate hql


【解决方案1】:

休眠方法list()is deprecated

请改用getResultList()

【讨论】:

    【解决方案2】:

    这是一个可怕的错误。而是使用测试数据库。官方最愚蠢的第一个问题。抱歉打扰了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      相关资源
      最近更新 更多