2017-01-03 8 views
0

Можно ли вызвать некоторый метод после создания объекта MyBatis? Моя цель - установить дополнительный параметр, основанный на значениях (наличие или отсутствие(), установленное MyBatis.Mybatis - что-то вроде @PostConstruct

Из моего исследования это подразумевает, что MyBatis всегда вызывает конструктор без параметров. В случае отсутствия такого конструктора он пытается вызвать . конструктор с параметрами соответствия для возвращенного результата из базы данных

Я думаю, что только путь создания пользовательского TypeHandler

ответ

0

TypeHandler сфера является 1 столбцом и не знает об отображении

Я предпочел бы использовать ResultHandler..: они вызывается после каждой строки результата отображается.

Точки контекста на отображаемом объекте результата, тогда вы можете делать все, что хотите на объекте.

Существует предел, если карта результатов использует коллекцию (потому что несколько строк результатов могут соответствовать одному объекту).

Это называется так: session.list("statement", params, resultHandler); Это отменяет результат по умолчаниюHandler. Если вам нужен список результатов, то реализация resultHandler должна будет добавить объекты в список.

Если вы используете картографа интерфейсы, которые, как представляется, в случае с Спринг-ботинке (картостроители отмечены @Mapper аннотацию), а затем просто передать обработчик результата в качестве аргумента, метод картографа будет выглядеть void myStatement(Object param, ResultHandler resultHandler);

+0

'session.list (" statement ", params, resultHandler);' - как использовать его в 'mybatis-spring-boot'? –

+1

проверить мой обновленный ответ – blackwizard

+0

мы можем поговорить в чате? http://chat.stackoverflow.com/rooms/134576/java? о mybatis - у меня есть некоторые вопросы –