【问题标题】:Check value in field before proceeding to delagator.create()在继续 deragator.create() 之前检查字段中的值
【发布时间】: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,这是我的问题。

标签: java ofbiz


【解决方案1】:

这取决于您目前的调用堆栈是什么。我猜您使用服务来调用 createTransaction。然后你可以在服务中检查。否则我们需要知道此时调用堆栈是什么。

高温高压

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2015-02-24
    • 2011-12-22
    • 1970-01-01
    • 2015-09-09
    • 2013-04-25
    • 1970-01-01
    相关资源
    最近更新 更多