jeecgboot / JeecgBoot

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
http://www.jeecg.com
Apache License 2.0
40.08k stars 14.7k forks source link

重要!online表单中建立视图后,无法对视图中的数据进行删除操作 #7211

Open ltt1987 opened 6 days ago

ltt1987 commented 6 days ago
版本号:3.7.1
问题描述:

1、新建主表ltt001 2、新建附表s1 3、给主表建立视图ltt001$1 4、修改附表s1的外键为ltt001$1表 5、进入主表视图ltt001$1功能测试,添加、编辑功能正常,删除时提示找不到表对象t1$1

通过代码跟踪,发现有一行获取TableName的方法获得的是ltt001$1视图名称,带有$1字样,然后直接带入SQL进行查询,最终导致了报错,建议对名称进行处理,剔除掉视图标识$xx。

详细错误信息:

删除失败, ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'jeecgbootnew.ltt001$1' doesn't exist ### The error may exist in org/jeecg/modules/online/cgform/mapper/OnlCgformFieldMapper.java (best guess) ### The error may involve org.jeecg.modules.online.cgform.mapper.OnlCgformFieldMapper.doSelect-Inline ### The error occurred while setting parameters ### SQL: SELECT name, create_by, sys_org_code, create_time, id, update_time, update_by FROM ltt001$1 WHERE (id = ?) ### Cause: java.sql.SQLSyntaxErrorException: Table 'jeecgbootnew.ltt001$1' doesn't exist ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'jeecgbootnew.ltt001$1' doesn't exist
错误截图:
image image

友情提示:

zhangdaiscott commented 5 days ago

试试最新版好了吗

jl