数据库ID设置为自增主键, 代码层面用了JPA的 @GeneratedValue(strategy = GenerationType.IDENTITY)来自动获取数据库生成的主键返回。如下
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = “ID”)
private Long id;
ORM框架用的是 mybatis, 在写入的时候报错如下。
; SQL []; 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值; nested exception is dm.jdbc.driver.DMException: 仅当指定列列表,且SET IDENTITY_INSERT为ON时,才能对自增列赋值
如果把@GeneratedValue 注解去掉能写入成功,但是这样就返回不了自动生成的id了,求解,求解。
自增列在插入的时候不需要指定该列,你把sql改成:
INSERT INTO TB_SX_RECORD_INTERVAL ( SID,STARTTIME ) VALUES( ?,? )
也就是说要去掉ID这个列,同时插入的时候也不用赋值,数据库会自动为这个列设置自增的值