fastJson转换过来的集合数据不能直接Db.batchSave保存吗?

		Map<String, List<MiniAppPageUserbean>> currentDayBean = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
		String currentDate = sdf.format(new Date());
		VolunteerRedisCache volunteerRedisCacheCache = new VolunteerRedisCache();
		String result = volunteerRedisCacheCache.get(REDIS_PREFIX+currentDate);
		if(StrKit.isBlank(result)) {
			return;
		}
		currentDayBean = (Map<String, List<MiniAppPageUserbean>>) JSONObject.parse(result);
		List<MiniAppPage> saveminiPages = new ArrayList<MiniAppPage>();
		List<MiniAppPage> updateminiPages = new ArrayList<MiniAppPage>();
		List<MiniAppPageOneday> saveminiAppPageOneday = new ArrayList<MiniAppPageOneday>();
		List<MiniAppPageUserbean> saveminiAppPageUserbean = new ArrayList<MiniAppPageUserbean>();
		for(Entry<String, List<MiniAppPageUserbean>> vo : currentDayBean.entrySet()){
			String key = vo.getKey();
			List<MiniAppPageUserbean> miniPageBeans = vo.getValue();
			MiniAppPage miniAppPage = srv.getMiniAppPageByPageUrl(key);
			if(miniAppPage != null) {
				miniAppPage.setTotal(miniAppPage.getTotal() + miniPageBeans.size());
				updateminiPages.add(miniAppPage);
			}else {
				miniAppPage = new MiniAppPage();
				miniAppPage.setId(StrKit.getRandomUUID());
				miniAppPage.setPageUrl(key);
				miniAppPage.setTotal(miniPageBeans.size()+0L);
				saveminiPages.add(miniAppPage);
			}
			MiniAppPageOneday miniAppPageOneday = new MiniAppPageOneday();
			miniAppPageOneday.setId(StrKit.getRandomUUID());
			miniAppPageOneday.setCreateAt(new Date());
			miniAppPageOneday.setDayTotal(miniPageBeans.size());
			miniAppPageOneday.setPageUrl(key);
			saveminiAppPageOneday.add(miniAppPageOneday);
			saveminiAppPageUserbean.addAll(miniPageBeans);
			
		}
		if(Db.batchSave(saveminiPages, saveminiPages.size()).length >= 0 
				&& Db.batchUpdate(updateminiPages, updateminiPages.size()).length >= 0 
				&& Db.batchSave(saveminiAppPageOneday, saveminiAppPageOneday.size()).length >= 0
				&& Db.batchSave(saveminiAppPageUserbean, saveminiAppPageUserbean.size()).length >= 0 ) {
		}	

上面代码中我通过fastJson把Redis中的数据直接转换成

List<MiniAppPageUserbean> miniPageBeans = vo.getValue();

并且将这个list存入到saveminiAppPageUserbean中的时候报错

com.alibaba.fastjson.JSONObject cannot be cast to com.jfinal.plugin.activerecord.Model

image.png

是不是不能这样使用呀?


评论区

chcode

2020-03-18 11:54

当然不能

热门反馈

扫码入社