电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

您要读取的数据在系统中不存在,可能已经被删除

来源:金蝶云社区作者:金蝶2024-09-234

您要读取的数据在系统中不存在,可能已经被删除

问题描述

当我们用实体的主键去查询数据库,返回实体数据时;如用BusinessDataServiceHelper.loadSingle通过pkid去查询数据,在对应的实体表中不存在,就会出现此问题。


原因分析

出现该问题主要原因就是,数据库表中不存在要查找的数据

场景一:

业务代码,查询数据在保存数据之前;因为数据还未持久化

场景二:

前端上有数据展示,然后去查询数据库没有数据,有可能是因为缓存和数据库数据不同步导致的。例如基础资料都是有缓存的,由于不规范的一些操作直接把表里的数据删除了,没刷新基础资料的缓存,就会出现数据不一致

场景三:

多个人同时操作一条数据,前面的操作把数据删除了,后面的操作要去查询该数据

解决方案

  • 例如在代码中查询一条数据库不存在的数据,报错


  • 对应的物理表,不存在需要查询的数据


如果是平台功能报类似的错误,不知道如何定位物理表,可以通过把sql打印到控制台:



sql输出到控制台:

修改启动类kd.bos.debug.mservice.DebugServer

① 将System.setProperty(“db.sql.out”, “false”); 修改为System.setProperty(“db.sql.out”, “true“);

② 在JettyServer.main(null);前添加

DB.setSqlLogger(new SqlLogger() {

@Override

public void log(String sql, Object… arg1) {

Syst

您要读取的数据在系统中不存在,可能已经被删除

问题描述当我们用实体的主键去查询数据库,返回实体数据时;如用BusinessDataServiceHelper.loadSingle通过pkid去查询数据,在对应的实体表...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信