2016-11-29 6 views
0

Когда я это сделаю:
insert into .... values (...,#{object.intField, javaType=Integer},...)# затем он работает - в базе данных этой колонки содержится null - как и ожидалось. Как это работает под капотом? Я имею в виду, что object имеет значение null, altohugh он работает. Где волшебство?Как это работает? Точечная нотация по null - mybatis

ответ

0

Значения параметров разрешаются от метода org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters (PreparedStatement)

Тогда магия вы ищете здесь: метод org.apache.ibatis .reflection.MetaObject.getValue (String) tokenizes строка имени параметра, разбиение на точки и рекурсивно вызывается до тех пор, пока не будет достигнут конец цепочки или пока текущий элемент не будет равен нулю.

После этого мы возвращаемся к общему случаю: значения свойств объекта извлекаются путем отражения: до java.lang.reflect.Field.