2015-03-31 3 views
2

ФОНповедение mapUnderscoreToCamelCase в MyBatis

У меня есть следующие настройки в моем mybatis-config.xml, как показано ниже.

<configuration> 
    <settings> 
      <setting name="mapUnderscoreToCamelCase" value="true"/> 
    </settings> 
. 
. 
. 

Как вы уже знаете, и, как говорит название параметра, оно позволяет автоматическое отображение для изменения подчеркивания имен столбцов верблюжьих имен.

ТАК, ЗАЯВЛЯЕТ РЕЗУЛЬТАТУ ПОСРЕДНИКА, КАК НИЖЕ СТАНОВИТСЯ НЕОБХОДИМЫМИ РАБОТАМИ.

<resultMap id="userModel" type="UserModel"> 
    <result property="userCode"  column="USER_CODE"  /> 
    <result property="userId"  column="USER_ID"  /> 
    <result property="userName"  column="USER_NAME"  /> 
    <result property="password"  column="USER_PASSWORD" /> 
    <result property="land"   column="LAND"   /> 
</resultMap> 
. 
. 
. 

ПРОБЛЕМА

Я сначала подумал, что это может сделать какие-либо имена столбцов верблюдов случаи. Но это не похоже.

Просто взгляните на эти два примера.

<select id="select" resultType="hashMap"> 
    <![CDATA[ 
     SELECT ID 
       ,USER_ID 
       ,USER_NAME 
       ,REG_DATE 
       ,UPD_DATE 

     FROM TEST 
    ]]> 
</select> 

Выше одного не преобразовано в верблюд.

<select id="selectTutorial" resultType="UserModel"> 
    <![CDATA[ 
     SELECT ID 
       ,USER_ID 
       ,USER_NAME 
       ,REG_DATE 
       ,UPD_DATE 

     FROM TEST 
    ]]> 
</select> 

Но один превращаются в верблюжье очень красиво.

Единственная разница в их resulyType. Один - hashMap, а другой - UserModel.

Эта ситуация заставляет меня думать, что модель является обязательной для отображения столбцов. Поэтому я сделал выстрел с диким угаром, как показано ниже.

public class UserModel { 
    int id; 
    String userId; 
    String userName; 
    Date regDate; 
    Date updDate; 
    . 
    . 
    . 


// Change its variable names to... 
public class UserModel { 
    int ID; 
    String userID; 
    String userNAME; 
    Date REGdate; 
    Date UPDdate; 
    . 
    . 
    . 

И это было правильно. Mybatis следует за именами участников модели. Поэтому мои вопросы сужаются до этого.

  1. Могу ли я получить имена ключевых верблюжьих даже когда картограф resultType является hashMap?

ответ

0

Обычно я изменяю SQL как: SELECT ID id, USER_ID userId, USER_NAME userName ..., что действительно не имеет большого значения, но дает более предсказуемые результаты, а затем потенциальное решение, которое вы пытаетесь выяснить.

При привязке к POJO mapUnderscoreToCamelCase вариант все еще может быть полезен, поэтому я могу использовать запросы, например SELECT * FROM ..., если это возможно.

Смежные вопросы