这是我的方法
public void makeDeposit(String WristID, double deposit) {
List resultList = em.createQuery(
"SELECT c FROM Tbleaccountcb005916 c WHERE c.wristid LIKE :wId")
.setParameter("wId", WristID)
.setMaxResults(1)
.getResultList();
int aNo = (int) resultList.get(0);
Tbleaccountcb005916 makeDeposit = em.find(Tbleaccountcb005916.class, aNo);
double balance = makeDeposit.getBalance();
double Mdeposit = balance + deposit;
makeDeposit.setBalance(Mdeposit);
em.persist(makeDeposit);
}
我想访问resultList值。此图像显示resultList值(已调试)
我需要访问resultList值(accountno = value = 2)并使用它。
我尝试了这个,但它不起作用:
int aNo = (int) resultList.get(0);
答案 0 :(得分:1)
您使用的查询会返回Tbleaccountcb005916
的列表,因为您在查询语句中返回c
。
List resultList = em.createQuery(
"SELECT c FROM Tbleaccountcb005916 c WHERE c.wristid LIKE :wId")
.setParameter("wId", WristID)
.setMaxResults(1)
.getResultList();
您可以返回c.accountno
或将resultList
项投放到Tbleaccountcb005916
并访问它的值。
答案 1 :(得分:0)
感谢@Samuel Kok,我找到了答案。我只是将查询更改为" c.accountno"
@Override
public void makeDeposit(String WristID, double deposit) {
List resultList;
resultList = em.createQuery(
"SELECT c.accountno FROM Tbleaccountcb005916 c WHERE c.wristid LIKE :wId")
.setParameter("wId", WristID)
.setMaxResults(1)
.getResultList();
int aNo = (int) resultList.get(0);
Tbleaccountcb005916 makeDeposit = em.find(Tbleaccountcb005916.class, aNo);
double balance = makeDeposit.getBalance();
double Mdeposit = balance + deposit;
makeDeposit.setBalance(Mdeposit);
em.persist(makeDeposit);
}