Tabla de contenido
Pregunta 2: Al insertar datos, no se devuelve el id al momento de guardar
prefacio
Cuando Mysql migró Kingbase, encontré algunos problemas de identificación al insertar datos y los resolví
Pregunta 1: la anotación @GeneratedValue se usa en el campo de identificación de la clase de entidad y se muestra una excepción no nula al insertar datos
La anotación @GeneratedValue en la identificación le dará automáticamente a la identificación un valor nulo al insertar datos.Mysql admite la identificación como un valor nulo al insertar, pero kingbase no lo admite, así que simplemente elimine esta anotación y la identificación se configurará automáticamente cuando se migra la base de datos Clave principal, no es necesario utilizar esta anotación
Pregunta 2: Al insertar datos, no se devuelve el id al momento de guardar
Al guardar datos, si necesita obtener el valor de identificación devuelto de esta clase de entidad al guardar, debe volver a escribir el método de inserción de datos en tk.mybatis en el archivo de mapeador general heredado y agregar dos nuevas anotaciones @InsertProvider y @Options poder
public interface InsertDAO<T> extends Marker,
InsertMapper<T>,
InsertSelectiveMapper<T>,
MySqlMapper<T> {
@Override
@InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insert(T record);
@Override
@InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertList(List<? extends T> recordList);
@Override
@InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertSelective(T record);
}