Mysql migra Kingbase y usa tk.mybatis para guardar datos cuando se encuentran con problemas de inserción de id.

Tabla de contenido

prefacio

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

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);
}

Supongo que te gusta

Origin blog.csdn.net/GuaGea/article/details/131307020
Recomendado
Clasificación