Firebird数据库支持只读列。计算值但未更新的列。如果我使用MyBatis Generator将某些表映射为只读列,则在插入或更新表时会收到以下错误:
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544359. attempted update of read-only column
。
如何使用MyBatis Generator处理这种色谱柱?是否可以使用insert和update语句忽略这种列?
注意:
使用insertSelective
和updateSelective
将只读列值传递为null
,而不是使用insert
和update
,只会解决我不喜欢的情况我想将其他字段更新为null
。所以,我需要另一种解决方案。
答案 0 :(得分:1)
MyBatis不为只读列提供额外支持。因此,周转解决方案是使用ignoreColumn
标记设置只读列,并使用映射器中的@Select注释手动编写需要该列值的查询。
<table tableName="...">
...
<ignoreColumn column="<read only column>" />
...
</table>