Когда я это сделаю:
insert into .... values (...,#{object.intField, javaType=Integer},...)#
затем он работает - в базе данных этой колонки содержится null
- как и ожидалось. Как это работает под капотом? Я имею в виду, что object
имеет значение null, altohugh он работает. Где волшебство?Как это работает? Точечная нотация по null - mybatis
0
A
ответ
0
Значения параметров разрешаются от метода org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters (PreparedStatement)
Тогда магия вы ищете здесь: метод org.apache.ibatis .reflection.MetaObject.getValue (String) tokenizes строка имени параметра, разбиение на точки и рекурсивно вызывается до тех пор, пока не будет достигнут конец цепочки или пока текущий элемент не будет равен нулю.
После этого мы возвращаемся к общему случаю: значения свойств объекта извлекаются путем отражения: до java.lang.reflect.Field.