为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:CENTOS7
【CPU】:X86_64
【问题描述】*:这是日志:dm.jdbc.driver.DMException: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
; 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值; nested exception is dm.jdbc.driver.DMException: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值] with root cause
这是集成的springboot+mybatis-plus,表ID在表中为BIGINT,自增长;
实体中:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
调用的新增方法是框架自带的insert();
如果是手写SQL不加ID是可以新增成功的,但是用框架时会自动带上ID就会出现上面的报错,请问这个有什么办法解决吗?
你这是springboot的默认注解吧,改为mybatis-plus的自增注解AUTO,这样在insert时就不会拼接ID字段了
设置是否允许将显式值插入表的自增列中。
改参数只对当前会话(连接)有效。
SET IDENTITY_INSERT 模式名.表名 ON ;
SET IDENTITY_INSERT 模式名.表名 OFF;
例子:
SET IDENTITY_INSERT PERSON.PERSON_TYPE ON;
INSERT INTO PERSON.PERSON_TYPE(PERSON_TYPEID, NAME) VALUES( 8, '广告部经理
');
INSERT INTO PERSON.PERSON_TYPE(PERSON_TYPEID, NAME) VALUES( 9, '财务部经理
');
SET IDENTITY_INSERT PERSON.PERSON_TYPE OFF;
自增列是id在不断的变化,所以只能不写id