Я пытаюсь создать аннотированный оператор вставки, используя MyBatis, где в аннотации указан обработчик типа.
Например, в запросе выбора мы можем указать обработчик типа следующим образом:
@Results({
@Result(column = "strings", property = "strings", typeHandler = StringArrayTypeHandler.class)
})
@Select("SELECT * FROM ${name} ORDER BY id ASC;")
List<StringObject> getStringObjects(@Param("name") String name);
Однако то же самое не представляется возможным для запроса вставки, так как аннотация @Results
предназначена только для запросов @Select
.
В настоящее время моя работа заключается в том, чтобы указать обработчик типа как частьстрока запроса, подобная этой:
@Options(useGeneratedKeys = true)
@Insert({"INSERT INTO ${name} (text, value, strings) VALUES (#{obj.text}, #{obj.value}, #{obj.strings, typeHandler=com.mypackage.typehandler.StringArrayTypeHandler});"})
void insertStringObject(@Param("obj") SenticConcept concept, @Param("name") String version);
Мой вопрос: можем ли мы указать класс обработчика типа в аннотации, а не быть частью строки запроса?