gpt4 book ai didi

java - Hibernate MYSQL native 查询抛出 ClassCastException

转载 作者:行者123 更新时间:2023-11-29 01:55:35 25 4
gpt4 key购买 nike

使用 Hibernate 从表中检索整数值,发生以下异常,

java.lang.ClassCastException: java.lang.Integer cannot be cast to pojo.Datasetstatus

String q1="SELECT datasetstatusID from datasetstatus where DatasetID='"+meta_dataset+"'";
Query query=session.createSQLQuery(q1);
List<Datasetstatus> dobj=query.list();
for(Datasetstatus dobj1: dobj) {
System.out.println("Value :: "+dobj1.getDatasetStatusId());
}

Pojo 类格式,

    public class Datasetstatus implements java.io.Serializable {

private Integer datasetStatusId;
private String datasetId;

public Datasetstatus(String datasetId) {
this.datasetId = datasetId;
}

public Integer getDatasetStatusId() {
return this.datasetStatusId;
}

public void setDatasetStatusId(Integer datasetStatusId) {
this.datasetStatusId = datasetStatusId;
}

public String getDatasetId() {
return this.datasetId;
}

public void setDatasetId(String datasetId) {
this.datasetId = datasetId;
}
}

如果有解决这个问题的建议

最佳答案

您需要将查询更改为:

List<Integer> dobj=
(List<Integer>) session.createSQLQuery(
"SELECT ds.datasetstatusID " +
"from datasetstatus ds " +
"where ds.datasetId = :dataSetId")
.setParameter("dataSetId", meta_dataset)
.list();

datasetstatusID 是一个整数,而不是 Datasetstatus

如果您想返回 Datasetstatus,您的查询将是:

List<Datasetstatus> dobj=
(List<Datasetstatus>) session.createSQLQuery(
"SELECT ds " +
"from datasetstatus ds " +
"where ds.datasetId = :dataSetId")
.setParameter("dataSetId", meta_dataset)
.list();

关于java - Hibernate MYSQL native 查询抛出 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30050031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com