gpt4 book ai didi

java - Ljava.lang.Object;无法转换为模型

转载 作者:行者123 更新时间:2023-12-02 11:01:00 25 4
gpt4 key购买 nike

在这种情况下,我想向 java hibernate 中的响应页面显示 Json,来自 DAO 的查询方法如下:

public List<TransactionQR> getAllTransaction() throws HibernateException {
return this.session.createQuery("FROM TransactionQR tr, Batch b, Terminal t, User_Smartphone us, Merchant mc WHERE tr.batch = b.id AND b.user_smartphone = us.id AND b.terminal = t.id AND t.merchant = mc.id AND state = '1' ").list();
}

然后在 servlet 类中,我尝试使用 Json 对象和 json 数组将列表转换为 json,然后像这样编写响应:

            int start = 0;
String jsonResult = null;
JSONObject jo=new JSONObject();

HttpServletRequest request = context.getRequest();
HttpServletResponse response = context.getResponse();

HttpSession session = context.getSession();

DB db = getDB(context);

//JSONObject jo = new JSONObject();
QRTransactionDao QR = new QRTransactionDao(db);
//Gson objGson = new GsonBuilder().setPrettyPrinting().create();
//String json = objGson.toJson(QR.getAllTransaction());

//System.out.println(json);

List<TransactionQR> str = QR.getAllTransaction();
JSONArray array = new JSONArray();

for(TransactionQR tr : str){

JSONObject str3 = new JSONObject();
str3.put("amount", tr.getAmount());
context.put("jsoncontent", jsonResult);

array.add(str3);
}

jo.put("status", "ok");
jo.put("dataqr", array);

jsonResult=jo.toString();
response.setContentType("application/json");
response.getWriter().print(jsonResult);

但是我在该行循环中遇到语法错误:

for(TransactionQR tr : str){

错误如下:

[Ljava.lang.Object; cannot be cast to Transaction

这里是模型交易:

package id.co.keriss.consolidate.ee;

import java.io.Serializable;
import java.util.Date;
public class TransactionQR implements Serializable{
private Long id;
private String codeqr;
private Date approvaltime;
private String merchant;
private String code_merchant;
private Long amount;
private Long saldoawal;
private Integer tracenumber;
private String state;
private Date createdate;
private Batch batch;

public TransactionQR() {

}

public TransactionQR(Long id, String codeqr, Date approvaltime, String merchant, String code_merchant, Long amount,
Long saldoawal, Integer tracenumber, String state, Date createdate, Batch batch) {
super();
this.id = id;
this.codeqr = codeqr;
this.approvaltime = approvaltime;
this.merchant = merchant;
this.code_merchant = code_merchant;
this.amount = amount;
this.saldoawal = saldoawal;
this.tracenumber = tracenumber;
this.state = state;
this.createdate = createdate;
this.batch = batch;
}

public Long getId() {
return id;
}
public Date getApprovalTime() {
return approvaltime;
}

public Batch getBatch() {
return batch;
}

public void setBatch(Batch batch) {
this.batch = batch;
}

public void setApprovalTime(Date approvalTime) {
this.approvaltime = approvalTime;
}
public void setId(Long id) {
this.id = id;
}

public Date getApprovaltime() {
return approvaltime;
}

public void setApprovaltime(Date approvaltime) {
this.approvaltime = approvaltime;
}

public String getCodeqr() {
return codeqr;
}

public void setCodeqr(String codeqr) {
this.codeqr = codeqr;
}



public String getMerchant() {
return merchant;
}

public void setMerchant(String merchant) {
this.merchant = merchant;
}

public String getCode_merchant() {
return code_merchant;
}

public void setCode_merchant(String code_merchant) {
this.code_merchant = code_merchant;
}

public Long getAmount() {
return amount;
}

public void setAmount(Long amount) {
this.amount = amount;
}

public Long getSaldoawal() {
return saldoawal;
}

public void setSaldoawal(Long saldoawal) {
this.saldoawal = saldoawal;
}

public Integer getTracenumber() {
return tracenumber;
}

public void setTracenumber(Integer tracenumber) {
this.tracenumber = tracenumber;
}

public String getState() {
return state;
}

public void setState(String state) {
this.state = state;
}

public Date getCreatedate() {
return createdate;
}

public void setCreatedate(Date createdate) {
this.createdate = createdate;
}
}

我尝试用 Gson 处理列表:

Gson objGson = new GsonBuilder().setPrettyPrinting().create();
String json = objGson.toJson(QR.getAllTransaction());

System.out.println(json);

这样,它可以显示,但它不是来自 POJO,我想使用 pojo 将数据解析为 json 吗?

为什么我收到错误无法转换为模型?有什么线索吗?

最佳答案

尝试将 Select tr 添加到 getAllTransaction() 中的查询

关于java - Ljava.lang.Object;无法转换为模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51321726/

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