188 Star 767 Fork 170

GVPNutz / nutz

 / 详情

SQL server 插入带id的数据异常 希望能增加支持

待办的
任务
创建于  
2022-05-31 15:45

SQLserver 主键id异常

                List<SysMenu> menuList = JSON.parseArray(data, SysMenu.class);
                for (SysMenu menu : menuList) {
                    dao.insert(menu, FieldFilter.create(SysMenu.class, FieldMatcher.create(false)));
                }

查了一下 文档 需要

SET IDENTITY_INSERT TABLENAME ON  --关闭
INSERT INTO TABLENAME(ID,...) VALUES(...)
SET IDENTITY_INSERT TABLENAME OFF      --开启

希望 框架能增加支持

评论 (5)

TomYule 创建了任务

这是sqlserver多少?

https://hub.docker.com/_/microsoft-mssql-server

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=yourStrong(!)Password" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

2019

2019的新语法?

不知道 应该是哦

自己希望解决 结果还是不行 只能 框架扩展了

                Sql sqlOff = Sqls.create("SET IDENTITY_INSERT $table OFF");
                sqlOff.vars().set("table",dao.getEntity(SysMenu.class).getTableName());
                dao.execute(sqlOff);

                String data = FileUtils.getFileData("db/menu.json");
                List<SysMenu> menuList = JSON.parseArray(data, SysMenu.class);
                for (SysMenu menu : menuList) {
                    dao.insert(menu, FieldFilter.create(SysMenu.class, FieldMatcher.create(false)));
                }

                Sql sqlOn = Sqls.create("SET IDENTITY_INSERT $table ON");
                sqlOn.vars().set("table",dao.getEntity(SysMenu.class).getTableName());
                dao.execute(sqlOn);

错误日志

16:41:36.106 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [printSQL,391] - SET IDENTITY_INSERT sys_menu OFF
16:41:36.106 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [exec,88] - Can't identify SQL type :   SET IDENTITY_INSERT sys_menu OFF
16:41:36.121 [main] DEBUG o.n.d.i.i.DaoTimeInterceptor - [filter,28] - time=15ms, sql=SET IDENTITY_INSERT sys_menu OFF
16:41:42.647 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [printSQL,391] - // NOT SQL // ElFieldMacro=$me.uid()
16:41:43.286 [main] DEBUG o.n.d.i.i.DaoTimeInterceptor - [filter,28] - time=636ms, sql=RUN
16:41:43.287 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [printSQL,391] - // NOT SQL // ElFieldMacro=$me.now()
16:41:43.290 [main] DEBUG o.n.d.i.i.DaoTimeInterceptor - [filter,28] - time=0ms, sql=RUN
16:41:43.291 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [printSQL,391] - // NOT SQL // ElFieldMacro=$me.uid()
16:41:43.294 [main] DEBUG o.n.d.i.i.DaoTimeInterceptor - [filter,28] - time=0ms, sql=RUN
16:41:43.296 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [printSQL,391] - // NOT SQL // ElFieldMacro=$me.now()
16:41:43.298 [main] DEBUG o.n.d.i.i.DaoTimeInterceptor - [filter,28] - time=1ms, sql=RUN
16:41:43.976 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [printSQL,391] - INSERT INTO sys_menu(menu_id,menu_name,parent_id,order_num,path,component,query,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time,update_by,update_time,remark) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) 
    | 1 |    2 | 3 | 4 |      5 |    6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |     14 | 15 |                  16 | 17 |                  18 |   19 |
    |---|------|---|---|--------|------|--|---|---|---|---|---|--|--------|--|---------------------|--|---------------------|------|
    | 1 | 系统管理 | 0 | 1 | system | NULL |  | 1 | 0 | M | 0 | 0 |  | system |  | 2022-06-27 16:41:43 |  | 2022-06-27 16:41:43 | NULL |
  For example:> "INSERT INTO sys_menu(menu_id,menu_name,parent_id,order_num,path,component,query,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time,update_by,update_time,remark) VALUES(1,'系统管理',0,1,'system',NULL,'','1','0','M','0','0','','system','','2022-06-27 16:41:43','','2022-06-27 16:41:43',NULL) "
16:41:44.577 [main] DEBUG o.n.d.i.s.r.NutDaoExecutor - [exec,103] - SQLException
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert explicit value for identity column in table 'sys_menu' when IDENTITY_INSERT is set to OFF.

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
4674 wendal 1578914274 993890 tomyule 1578937733
Java
1
https://gitee.com/nutz/nutz.git
git@gitee.com:nutz/nutz.git
nutz
nutz
nutz

搜索帮助