gpt4 book ai didi

java - 实体无法转换为 java.lang.Double

转载 作者:行者123 更新时间:2023-11-30 05:14:17 26 4
gpt4 key购买 nike

  public static List<Transaction1> debitSourceAccBalance (Integer youraccinput, Integer toaccinput, String recname, Double amtsender) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Query q = em.createQuery("SELECT t from Transaction1 t where t.fromAccNo =:youraccinput AND t.toAccNo =:toaccinput AND t.name =:recname AND t.amount >=:amtsender");
q.setParameter("youraccinput", youraccinput);
q.setParameter("toaccinput", toaccinput);
q.setParameter("recname", recname);
q.setParameter("amtsender", amtsender);
Double currbal = (Double)q.getSingleResult();

amtsender = currbal - amtsender;
Query u = em.createQuery("UPDATE Transaction1 t SET t.amount =:amtsender WHERE t.fromAccNo =:youraccinput AND t.toAccNo =:toaccinput");
u.setParameter("youraccinput", youraccinput);
u.setParameter("toaccinput", toaccinput);
u.setParameter("amtsender", amtsender);

u.executeUpdate();
return q.getResultList();

Servlet:

              Integer youraccinput = Integer.parseInt(request.getParameter("fromAccNo"));
Integer toaccinput = Integer.parseInt(request.getParameter("toAccNo"));
String recname = request.getParameter("name");
Double amtsender = Double.parseDouble(request.getParameter("amount"));


List<Transaction1> results = Transaction1.debitSourceAccBalance(youraccinput, toaccinput, recname, amtsender);
results.listIterator();
request.getRequestDispatcher("ListSingleTransaction").forward(request, response);

为什么我会收到此错误消息?请帮忙修复!!

"Entities.Transaction1 cannot be cast to java.lang.Double"

最佳答案

转换错误位于

Double currbal = (Double)q.getSingleResult();

你连自己为什么要选它都不知道?

作为帮助您通过此问题的快速修复,解决方法非常简单。只需将其更改为:

Transaction1 transaction = (Transaction1) q.getSingleResult();
Double currbal = transaction.getCurrentBalance(); // method name assumed

您的 JPA 查询返回一个实体对象,而不是单个原始值,因此您无法将其转换为 double ,因为您的查询没有选择 double - 它选择了一个 Transaction1 对象,因此您需要将查询的单个结果转换为您选择的任何结果。

了解有关 JPA 的更多信息。

关于java - 实体无法转换为 java.lang.Double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196728/

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