Mybatis проблема с картой введите при добавлении новой записи - PullRequest
0 голосов
/ 08 февраля 2020

Я использую mybatis для обобщенной c реализации операции CRUD через наше приложение, и она работала нормально с Spring boot 2.1.1.RELEASE и mybatis-spring-boot-starter: 2.1.0, однако, когда я обновил версию до Spring boot 2.2.1.RELEASE и версия mybatis-spring-boot-starter.2.1.1, в которой она начала давать сбой.

Что я имею в виду под ошибкой, если я храню java .lang.Integer как затем значение в Map при сохранении его преобразуется в String и получает исключение, например - org. postgresql .util.PSQLException: ERROR: столбец "column_name" имеет тип Numberri c, но выражение имеет тип символов, меняющихся.

Класс Mapper

@Mapper
public interface GenericMapper {

  public void add(@Param("tablename") String tablename, @Param("fieldMap") Map<String, Object> fieldMap);

}

Mapper XML

<insert id="add" >
        INSERT INTO ${tablename}

        <foreach item="item" index="key"
            collection="fieldMap.entrySet()" open=" (" separator="," close=") " >
            ${key}
        </foreach>

        VALUES

        <foreach item="item" index="index"
            collection="fieldMap.entrySet()" open=" (" separator="," close=")">
            #{item}
        </foreach>
    </insert>

Любое предложение будет высоко оценено.

...