mybaties Тип преобразования при выборе - PullRequest
0 голосов
/ 13 мая 2018

Я использую mybaties 3.2.6 с AWS Oracle RDS в моем проекте.Для одного выбора таблицы из таблицы я получаю TimeStamp, но на стороне объекта у меня есть String.До сих пор я использовал TO_CHAR для преобразования из timeStamp (сторона JDBC) в строку (сторона Java) что-то вроде этого.

SELECT SESSION_ID,
      ct.MEMBER_ID as MEMBER_ID  ,
      ct.KO_MEMBER_ID as KO_MEMBER_ID, 
      ct.KO_MEMBER_NAME as KO_MEMBER_NAME, 
      ct.REASON as REASON, 
      TO_CHAR(ct.TICKET_DTM,'YYYY-MM-DD HH24:MI:SS.FF') as TICKET_DTM, 
      ct.DATA_TYPE as DATA_TYPE  
      FROM TICKET ct
      WHERE id=#{Id}
      fetch first 300 rows only

Но чтобы избежать проблемы привязки функции DB, я не хочу использовать функцию TO_CHARбольшеМогу ли я сделать что-то в конце Java / mybaties для этого, например CustomTypeHandler или что-то подобное?Во время вставки я использую CustomTypeHandler с типом java и нотацией типа Jdbc, например ...

#{birthday,jdbcType=DATE,javaType=java.lang.String,typeHandler=StringDateTypeHandler}

Это работает правильно для вставки для преобразования типов ...

Есть ли что-то, что можетпомогите мне в преобразовании типов во время выбора также, как у нас для вставки?

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете указать typeHandler в карте результатов для вашего типа.

Если вы не используете карту результатов для своего запроса, вам нужно будет ввести ее, указав атрибут resultMap в select следующим образом:

 <select id="getTickets" resultMap="ticketResultMap">
    ... you query goes here
 </select>

Также добавьте resultMap определение следующим образом:

<resultMap id="ticketResultMap" type="Ticket">
    <id property="id" column="id"/>
    <result property="yourDateColumn" column="TICKET_DTM" 
        typeHandler="StringDateTypeHandler"/>
    <!-- other fields mappings or use autoMapping="true" -->
</resultMap>
...