Дело MyBatis "карта-подчеркивание-верблюд" не работает - PullRequest
0 голосов
/ 16 апреля 2019

Я использую MyBatis 2.0.0 и у меня проблема: у меня есть userId и поле состояния, которые нужны для извлечения данных, поэтому я использую Mybatis для этого.но когда я пытаюсь получить данные, MyBatis не работает, и я продолжаю получать ту же ошибку.Я пытался добавить строки в application.properties

#mybatis entity scan packages
mybatis.type-aliases-package=com.cnoga.**.dao

#Mapper.xml location
mybatis.mapper-locations=classpath*:/mybatis/**/*.xml
mybatis.configuration.map-underscore-to-camel-case=true

, но ничего не произошло, и я все еще получаю свою ошибку.Я даже пытался создать mybatis-config.xml следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>
</configuration>

и добавить эту строку в application.properties вместо строк выше:

"mybatis.config-location = classpath: /mybatis-config.xml "

Файл сопоставления:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.proj.user.dao.UserMapper" >

  <select id="query4Regist" resultType="java.util.Map" parameterType="java.util.Map" >
   select u.user_id userId, 
          status
     from t_user u 
     left join t_user_group ug on u.user_id = ug.user_id 
    where u.is_del  = 1
      and u.status between 0 and 4
      and ( 
            u.email = #{account,jdbcType=NVARCHAR}
            <if test="countryCode != null and countryCode != ''">
               or (u.mobile = #{account,jdbcType=NVARCHAR} and u.country_code = #{countryCode,jdbcType=NVARCHAR})
            </if>
          )
      and (u.region_name = #{regionName} or ug.group_id = 7 or ug.group_id = 8)
      order by u.user_id desc offset 0 rows fetch next 1 rows only
  </select>  
</mapper>

1 Ответ

0 голосов
/ 18 апреля 2019

Я решил проблему! Проблема заключалась в использовании функций карты. Чтобы использовать MYBATIS, я построил struct только для значений, которые я хотел передать, и я просто изменил во всех местах, где я вызывал функции карты, чтобы получить данные из новой структуры

...