【发布时间】:2022-10-08 18:28:38
【问题描述】:
我有一个名为 value 的 GenericValue,我用它来放置事务详细信息,然后再继续到 try-catch 块中的 delegator.create(makevalue)
我想在 try-catch 块之前检查委托人内部的数量,如果它真的是一个 BigDecimal 或一个字符串被放入其中,并在我得到那个数据库错误之前将错误返回给客户端。
如何在 makevalue GenericValue 中获取该金额字段?
public static Map<String, Object> createTransaction(Delegator delegator, String caseIds, BigDecimal amountToPay,String createdBy) {
String caseId = caseIds.replaceAll(",", "");
GenericValue caseELI = getEntityValue(delegator,"Cases", "caseId", caseId);
GenericValue makeValue = delegator.makeValue("AccountTransaction");
Long accountTransactionId = delegator.getNextSeqIdLong("AccountTransaction");
makeValue.put("accountTransactionId", accountTransactionId);
makeValue.put("caseId",caseId);
makeValue.put("clientId", caseELI.getString("clientId"));
makeValue.put("amount",amountToPay);
makeValue.put("isCash","Y");
makeValue.put("isPosted","Y");
makeValue.put("createdBy",createdBy);
try {
delegator.create(makeValue);
} catch(GenericEntityException e){
e.printStackTrace();
}
Map<String, Object> result = ServiceUtil.returnSuccess("Transaction processed successfully");
return result;
}
【问题讨论】:
-
嗨 Maxwel,我不确定是否理解。 “amountToPay”必须是传递给 createTransaction() 的 BigDecimal。因此,您想在调用 createTransaction() 的上游检查 amountToPay 以查看是否不会在那里传递字符串,对吗?
-
是的@JacquesLeRoux,这是我的问题。