@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO,generator = "UUID")
private String id;
public String insertSelective(MappedStatement ms) {
Class<?> entityClass = this.getEntityClass(ms);
StringBuilder sql = new StringBuilder();
Set<EntityColumn> columnList = EntityHelper.getColumns(entityClass);
Boolean hasIdentityKey = false;
Iterator var6 = columnList.iterator();
EntityColumn column;
label95:
do {
while(true) {
while(true) {
do {
do {
if (!var6.hasNext()) {
sql.append(SqlHelper.insertIntoTable(entityClass, this.tableName(entityClass)));
sql.append("<trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">");
var6 = columnList.iterator();
while(true) {
while(true) {
do {
if (!var6.hasNext()) {
sql.append("</trim>");
sql.append("<trim prefix=\"VALUES(\" suffix=\")\" suffixOverrides=\",\">");
var6 = columnList.iterator();
while(var6.hasNext()) {
column = (EntityColumn)var6.next();
if (column.isInsertable()) {
if (column.isIdentity()) {
sql.append(SqlHelper.getIfCacheNotNull(column, column.getColumnHolder((String)null, "_cache", ",")));
} else {
sql.append(SqlHelper.getIfNotNull(column, column.getColumnHolder((String)null, (String)null, ","), this.isNotEmpty()));
}
if (StringUtil.isNotEmpty(column.getSequenceName())) {
sql.append(SqlHelper.getIfIsNull(column, this.getSeqNextVal(column) + " ,", this.isNotEmpty()));
} else if (column.isIdentity()) {
sql.append(SqlHelper.getIfCacheIsNull(column, column.getColumnHolder() + ","));
} else if (column.isUuid()) {
sql.append(SqlHelper.getIfIsNull(column, column.getColumnHolder((String)null, "_bind", ","), this.isNotEmpty()));
}
}
}
sql.append("</trim>");
return sql.toString();
}
column = (EntityColumn)var6.next();
} while(!column.isInsertable());
if (!StringUtil.isNotEmpty(column.getSequenceName()) && !column.isIdentity() && !column.isUuid()) {
sql.append(SqlHelper.getIfNotNull(column, column.getColumn() + ",", this.isNotEmpty()));
} else {
sql.append(column.getColumn() + ",");
}
}
}
}
column = (EntityColumn)var6.next();
} while(!column.isInsertable());
} while(StringUtil.isNotEmpty(column.getSequenceName()));
if (column.isIdentity()) {
sql.append(SqlHelper.getBindCache(column));
if (hasIdentityKey) {
continue label95;
}
this.newSelectKeyMappedStatement(ms, column);
hasIdentityKey = true;
} else if (column.isUuid()) {
sql.append(SqlHelper.getBindValue(column, this.getUUID()));
}
}
}
} while(column.getGenerator() != null && column.getGenerator().equals("JDBC"));
throw new MapperException(ms.getId() + "对应的实体类" + entityClass.getCanonicalName() + "中包含多个MySql的自动增长列,最多只能有一个!");
}
在insert成功后如何返回id?
执行
insert(user)
成功后user.getId()
就可以得到生成的id