Столбец только для чтения, сопоставленный с помощью MyBatis Generator

База данных Firebird поддерживает столбцы только для чтения. Столбцы, значения которых вычисляются, а не обновляются. Если я сопоставляю какую-либо таблицу со столбцами, доступными только для чтения, с помощью MyBatis Generator, я получаю следующую ошибку при вставке или обновлении таблицы:

org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544359. attempted update of read-only column.

Как работать с такой колонкой с помощью MyBatis Generator? Возможно ли, чтобы операторы вставки и обновления игнорировали столбец такого типа?

Примечание. Использование insertSelective и updateSelective для передачи значений столбцов только для чтения как null вместо использования insert и update решит только те случаи, когда я не хочу обновлять другие поля до null. Итак, мне нужно другое решение.


person Italo Borssatto    schedule 03.04.2013    source источник
comment
Я никогда не использовал MyBatis, но, судя по беглому поиску в Google, он не поддерживает это. Возможно, вам следует задать вопрос в группе Google MyBatis: groups.google.com/group/mybatis-user< /а>   -  person Mark Rotteveel    schedule 06.04.2013


Ответы (1)


MyBatis не предлагает дополнительную поддержку столбцов только для чтения. Таким образом, обходное решение состоит в том, чтобы установить столбцы только для чтения с тегом ignoreColumn и написать запросы, которым требуется значение этого столбца, вручную, используя аннотации @Select в преобразователях.

<table tableName="...">
    ...
    <ignoreColumn column="<read only column>" /> 
    ...
</table>
person Italo Borssatto    schedule 30.10.2013