Как передать тип параметра byte [] в SQL-запрос в MyBatis? - PullRequest
1 голос
/ 02 марта 2012

Мне нужно сопоставить зашифрованный столбец в БД.Мне нужно передать зашифрованное значение для сопоставления в виде байта [].Хеш-код байта [] передается вместо фактического значения, хранящегося в байте [].Поскольку хеш-код передается, он не соответствует значению правильно.Ниже мой запрос и вызов функции в Mapper.java.

AccBalNotificationBean selectAccBalNotificationBean(@Param("acctIdByteArray") byte[] acctIdByteArray);

SELECT toa.accounts_id from tbl_transactions_other_accounts toa WHERE other_account_number = #{acctIdByteArray}

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 03 марта 2012

Я предполагаю, что тип данных вашего столбца other_account_number имеет тип string (char, varchar и т. Д.). Mybatis будет использовать StringDataTypeHandler по умолчанию и вызовет метод .toString () вашего байтового массива. Дайте MyBatis подсказку, что вы хотите использовать содержимое вашего массива, указав typeHandler.

.. WHERE other_account_number = #{acctIdByteArray, typeHandler=org.apache.ibatis.type.ByteArrayTypeHandler}
...