代码拉取完成,页面将自动刷新
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 --开启
希望 框架能增加支持
这是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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
自己希望解决 结果还是不行 只能 框架扩展了
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.
登录 后才可以发表评论