大家好,请教下关联查询数据返回的问题


最近接手了一个项目。。现在我这里需新增加个接口关联查询返回数据。。按照它系统的接口规范写好了模板。。但是现在查不出数据,报空指针异常

List<ReportPayment> list = ReportPayment.dao.find(sql);
public class ReportPayment extends BaseReportPayment<ReportPayment> {
   public static final ReportPayment dao = new ReportPayment();
}

image.png

 List<ReportPayment> list = ReportPayment.dao.find(sql);
//        ReportPayment.dao.findById()
//        List<Record> list = Db.find(sql, startTime, endTime);
public class _MappingKit {
   
   public static void mapping(ActiveRecordPlugin arp) {
      arp.addMapping("report_customer", "statDate", ReportCustomer.class);
      arp.addMapping("report_customer_stat", "statDate", ReportCustomerStat.class);
      arp.addMapping("report_device", "statDate", ReportDevice.class);
      arp.addMapping("report_device_bak", "statDate", ReportDeviceBak.class);
      arp.addMapping("report_payment", "statDate", ReportPayment.class);
      arp.addMapping("report_proprietor", "statDate", ReportProprietor.class);
      arp.addMapping("report_stat_center", "statDate", ReportStatCenter.class);
   }
}


评论区

yuanfei

2018-08-29 14:49

yuanfei

2018-08-29 14:51

sql写好了 就是需要关联两张表查询 返回数据 但是debug走到find就是NullPointerException

yuanfei

2018-08-29 14:51

数据库配置是正常的

JFinal

2018-08-29 14:59

ActiveRecordPlugin 有没有 me.add(arp)

如果不是 web 项目,得手动 arp.start()

参考文档:
http://www.jfinal.com/doc/5-15

yuanfei

2018-08-29 15:14

@JFinal Plugins me = new Plugins();
LogKit.info("初始化druid数据库连接池");
DruidPlugin dp = new DruidPlugin(EnvConfig.get("jdbcUrl"), EnvConfig.get("user"), EnvConfig.get("password"));
me.add(dp);

LogKit.info("配置Model和数据库表关系");
ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
_MappingKit.mapping(arp);
me.add(arp);

LogKit.info("初始化redis连接池");
if(EnvConfig.getBoolValue("redis", false)){
RedisPlugin rp = new RedisPlugin(EnvConfig.get("redis.cacheName"),
EnvConfig.get("redis.host"),
EnvConfig.getInt("redis.port"),
Protocol.DEFAULT_TIMEOUT,
EnvConfig.get("redis.password"),
EnvConfig.getInt("redis.database", 0)
);
rp.getJedisPoolConfig().setMaxIdle(50);
rp.getJedisPoolConfig().setMaxTotal(50);
rp.getJedisPoolConfig().setMinIdle(30);
me.add(rp);
}

for (IPlugin plugin : me.getPluginList()) {
plugin.start();
}

if(EnvConfig.getBoolValue("redis", false)){
//使用redis作为第三方token缓存
ApiConfig.setTokenCache(new RedisTokenCache());
}

yuanfei

2018-08-29 15:42

我看配置是没问题的。工程里好几个插件案例。都是接手前别人封装的业务。我只需要sql返回数据,就不知道总是null……!!!!!!!

yuanfei

2018-08-29 15:43

JFinal

2018-08-29 16:25

@yuanfei 单步调试,看是哪个对象为 null 值引发的

yuanfei

2018-08-29 17:56

@JFinal 感谢 可以了

热门反馈

扫码入社