找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 10827|回复: 5

[学习] NCC中快速持久化更新某实体的少量字段

[复制链接]
发表于 2021-3-19 10:14:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
/* 43 */     String[] oppids = (String[])aloppid.toArray(new String[aloppid.size()]);

/* 45 */     String[] updateKeys = { "fopposeflag" };

/* 49 */     String[] selectKeys = { "csaleinvoiceid", "fopposeflag", "ts" };

/* 54 */     VOQuery<SaleInvoiceHVO> querysrv = new VOQuery(SaleInvoiceHVO.class, selectKeys);
/*    */     
/* 56 */     SaleInvoiceHVO[] hvos = (SaleInvoiceHVO[])querysrv.query(oppids);
/* 57 */     VOConcurrentTool tool = new VOConcurrentTool();
/* 58 */     tool.checkTSWithDB(hvos);
/* 59 */     for (SaleInvoiceHVO hvo : hvos) {
/* 60 */       hvo.setFopposeflag((Integer)oppflag.value());
/*    */     }
/* 62 */     Object bo = new VOUpdate();
/* 63 */     ((VOUpdate)bo).update(hvos, updateKeys);

 楼主| 发表于 2021-6-21 12:56:01 | 显示全部楼层
dao.retrieveByClause 方法中,不用增加where字段  和 order by 字段
回复 点赞 拍砖

使用道具 举报

发表于 2021-6-23 20:20:17 | 显示全部楼层
看不懂, 很厉害, 大神加油
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2022-3-27 09:06:17 | 显示全部楼层
查询和持久化的写法很多,记录一下
1,
                List<ReelMaterialVO> matVos = (List<ReelMaterialVO>) baseDao.executeQuery(sbSql.toString(), new BeanListProcessor(ReelMaterialVO.class));
2,
                List<Map> mapList =  (List<Map>) baseDao.executeQuery(sbSql.toString(),param, new MapListProcessor());

回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2022-3-27 13:45:28 | 显示全部楼层
import nc.itf.pubapp.pub.smart.IBillQueryService;

IBillQueryService billQuery = NCLocator.getInstance().lookup(IBillQueryService.class);
String[] pks = {pk};
AbstractBill[] aggvos = billQuery.queryAbstractBillsByPks(SaleOutVO.class, pks);
SaleOutVO newvo = (SaleOutVO)aggvos[0];
=====================================================
public AggHouse_customer_b[] pubquerybills(IQueryScheme queryScheme)
???throws BusinessException {
??AggHouse_customer_b[] bills = null;
??try {
???this.preQuery(queryScheme);
???BillLazyQuery<AggHouse_customer_b> query = new BillLazyQuery<AggHouse_customer_b>(
?????AggHouse_customer_b.class);
???bills = query.query(queryScheme, null);
??} catch (Exception e) {
???ExceptionUtils.marsh(e);
??}
??return bills;
?}

AggregatedValueObject[] vo = HYPubBO_Client.queryBillVOByCondition(HRDeptVO.class," and nvl(dr,0)");
=============================================================
IMDPersistenceQueryService service = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
List<AggsettledVO> listSettledVO = (List<AggsettledVO>)service.queryBillOfVOByCond(AggsettledVO.class, whereSql, true);//(vo.class," nvl(dr,0)=0 and 1=1", 是否懒加载)
AggsettledVO[] vos = (AggsettledVO[])listSettledVO.toArray(new AggsettledVO[listSettledVO.size()]);
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2022-6-6 18:16:10 | 显示全部楼层
持久化代码示例

package nc.impl.am.db;

import nc.impl.pubapp.pattern.data.bill.BillDelete;
import nc.impl.pubapp.pattern.data.bill.BillOperator;
import nc.impl.pubapp.pattern.data.bill.BillQuery;
import nc.impl.pubapp.pattern.data.bill.BillUpdate;
import nc.vo.pubapp.pattern.model.entity.bill.IBill;

public class BillPersistUtil {
   public <T extends IBill> void delete(T... billVOs) {
      BillDelete<IBill> action = new BillDelete();
      action.delete(billVOs);
   }

   public <T extends IBill> T[] update(T[] billVOs) {
      String[] key = new String[billVOs.length];

      for(int i = 0; i < billVOs.length; ++i) {
         key[i] = billVOs[i].getPrimaryKey();
      }

      BillUpdate<IBill> action = new BillUpdate();
      BillQuery<IBill> queryAction = new BillQuery(billVOs[0].getClass());
      IBill[] originBills = queryAction.query(key);
      T[] retVO = (IBill[])action.update(billVOs, originBills);
      return retVO;
   }

   public <T extends IBill> T[] update(T[] billVOs, T[] originBills) {
      T[] retVO = null;
      if (originBills == null) {
         retVO = this.update(billVOs);
      } else {
         BillUpdate<IBill> action = new BillUpdate();
         retVO = (IBill[])action.update(billVOs, originBills);
      }

      return retVO;
   }

   public <T extends IBill> T[] insert(T... billVOs) {
      BillOperator<T> action = new BillOperator();
      return action.insert(billVOs);
   }
}
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-4-24 04:15 , Processed in 0.032494 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表