关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 6117|回复: 3

[环境搭建] 引用IGenericBaseCommonDao类中的方法报错

[复制链接]
发表于 2019-2-28 10:25:38 | 显示全部楼层 |阅读模式
使用IGenericBaseCommonDao类中的findByQueryString方法报空指针异常,使用代码如下:

引用代码

引用代码

错误提示如下:

错误提示

错误提示


 楼主| 发表于 2019-3-1 11:48:02 | 显示全部楼层
没人遇到过吗?
发表于 2019-3-1 15:17:30 | 显示全部楼层
小白问题,你这个测试类都不在spring容器里面管理,怎么能这么写
 楼主| 发表于 2019-3-1 20:12:15 | 显示全部楼层
但是,我这样写也还是不行啊!
Controller类:
Controller.jpg

service类:
@Service("mtOrderinfoService")
public class MtOrderinfoServiceImpl extends CommonServiceImpl implements MtOrderinfoServiceI {

@Transactional(readOnly=true)
        public Integer getOrderCountNum(String hql) {
                return this.commonDao.executeHql(hql);
        }
}
OrderNumFillRule 类:
public class OrderNumFillRule implements IFillRuleHandler{
        private static final Logger logger = LoggerFactory.getLogger(OrderNumFillRule.class);
        @Autowired
        private MtOrderinfoServiceI mtOrderinfoService;
//订单号生成计数器
        private Integer orderNumCount = 0;
        // 锁对象,可以为任意对象
        private static Object lockObj = "lockerOrder";
        private Integer weishu;
        @Override
        public Object execute(String paramJson) {
                String prefix="";
                if(paramJson!=null && !"".equals(paramJson)){
                        JSONObject jsonObject = JSONObject.fromObject(paramJson);
                        Object obj = jsonObject.get("prefix");
                        if(obj!=null)prefix=obj.toString();
                }
                String orderNum = prefix+this.createPendingOrder();
                return orderNum;
        }
        /**
         *
         * @Description:订单号生成
         * @param user 获取当前用户的所在城市信息
         * @return finOrderNum 生成的订单号
         */
        public String createPendingOrder() {
                synchronized (lockObj) {
                // 取系统当前时间作为订单号变量前半部分
                        String yearMonth = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()).substring(2, 6);
                        String qz = ResourceUtil.getSessionUser().getCityCode() + yearMonth;
                        orderNumCount = this.getMaxPendingOrder(qz);// 获得订单号数量
                        if (orderNumCount !=0) {
                                weishu=orderNumCount;
                                weishu+=1;
                        }else
                                weishu=1;
                        String strWeiShu=weishu.toString();
                        for(int i = strWeiShu.length();i<=2;i++){
                                if(i<2) {
                                        strWeiShu = "00" + strWeiShu;
                                }else
                                        strWeiShu="0"+strWeiShu;
                    }
                         String finOrderNum=qz+strWeiShu;
                        orderNumCount++;
                        logger.info("ordernum:"+finOrderNum);
                        return finOrderNum;
                }
                        }
/**
  *
  * @Description:获取数据库订单号的最大数量
  * @param qz 查询条件
  * @return 订单号的最大数量
  */
        public Integer getMaxPendingOrder(String qz){
                System.out.println("qz:"+qz);
                String hql="select count(mt.order_num) from mt_orderinfo mt where 1=1 and "
                                + "mt.order_num like '"+ qz + "%'order by mt.order_num desc";
                Integer countNum=mtOrderinfoService.getOrderCountNum(hql);
                System.out.println("size:"+countNum);
        return countNum;
        }

还是一样的报空指针:

错误图片

错误图片

还是在引用方法的时候写错啦?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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