Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 MyBatis + UUID + H2  [new]
ErikI
Member

Откуда:
Сообщений: 162
Пытаюсь передать параметр типа UUID в mapper MyBatis. Получаю
"Cause: java.lang.UnsupportedOperationException
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)"
Для обработки UUID создал public class UUIDTypeHandler extends BaseTypeHandler<UUID> и зарегистрировал его config.getTypeHandlerRegistry().register(UUID.class, UUIDTypeHandler.class)
Обработчик брал тут [url=]https://www.programcreek.com/java-api-examples/?code=cvent/dropwizard-mybatis/dropwizard-mybatis-master/src/main/java/com/cvent/dropwizard/mybatis/typehandlers/UUIDObjectTypeHandler.java#[/url]

Отдебажил MyBatis, вылетает на MetaObject.getValue
    public Object getValue(String name) {
        PropertyTokenizer prop = new PropertyTokenizer(name);
        if (prop.hasNext()) {
            MetaObject metaValue = this.metaObjectForProperty(prop.getIndexedName());
            return metaValue == SystemMetaObject.NULL_META_OBJECT ? null : metaValue.getValue(prop.getChildren());
        } else {
            return this.objectWrapper.get(prop); <-- вот тут
        }
    }

Сами методы UUIDTypeHandler не дёргаются. Есть идеи куда смотреть?
4 июл 19, 20:18    [21921105]     Ответить | Цитировать Сообщить модератору
 Re: MyBatis + UUID + H2  [new]
ErikI
Member

Откуда:
Сообщений: 162
Оказывается всё делал правильно, просто в имени переменной ошибся. Ещё потребовалось выставить jdbcType = VARCHAR Хочу добавить, что TypeHandler отличное расширение для обработки кастомных типов.
5 июл 19, 11:50    [21921478]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить