Skip to content

OracleMapper<T>接口的insertList 批量插入的时候ID还是报空怎么解决 #472

@LiuDangYang

Description

@LiuDangYang

我的代码:
继承通用mapper
@RegisterMapper
public interface TkMapper extends Mapper, OracleMapper {
}
业务mapper
@Mapper
@repository
public interface UserinfoMapper extends TkMapper {
}

public void test() {
List userinfos = new ArrayList();
Userinfo userinfo = new Userinfo();
userinfo.setEmail("1111111111@qq.com");
userinfo.setRegdate(new Date());
userinfo.setUsername("测试1");
userinfo.setUserpwd("11111111");
Userinfo userinfo2 = new Userinfo();
userinfo2.setEmail("22222222@qq.com");
userinfo2.setRegdate(new Date());
userinfo2.setUsername("测试2");
userinfo2.setUserpwd("22222222");
userinfos.add(userinfo);
userinfos.add(userinfo2);
int i = userinfoMapper.insertList(userinfos);
}
实体类
@DaTa
@NoArgsConstructor
@AllArgsConstructor
@table(name = "userinfo")
public class Userinfo implements Serializable {
private static final long serialVersionUID = 7369711899100020179L;

/*
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "select seq_userinfo.nextval from dual")*/
@Id
@Column(name = "ID")
@KeySql(order = ORDER.BEFORE, sql = "select seq_userinfo.nextval from dual")
private Long id;
private String username;
private String userpwd;
private String email;
private Date regdate;

}
下面是报错信息
【==> Preparing: INSERT INTO userinfo ( id,username,userpwd,email,regdate ) VALUES ( ?,?,?,?,? ) , ( ?,?,?,?,? ) 】【com.caib.dao.mapper.boss.UserinfoMapper.insertList】
【Resolved [org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='__frch_record_0.id', mode=IN, javaType=class java.lang.Long, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111]】【org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver】
单条插入是可以的,批量的还是因为获取序列的id失败为空,所以插入不了,请问这个如何解决

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions