一、問題概述
忙了一段時間的jenkins持續集成,又要開始開發任務了。這兩天在用mybatis generator來逆向生成dao層工程。
其中一個問題在於,組長在設計表的時候,不少枚舉使用了smallint類型,如下:
然后,mybatis generator就會針對smallint類型的列,生成short類型的java域。
我還是偏愛Integer,因為懶。懶得轉來轉去。
二、解決辦法
修改mybatis generator使用的默認的JavaTypeResolver實現。
其默認實現為org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl,其中有如下的一段:
這個一猜就是,將smallint類型的字段,映射為Short類型的java域。
我的辦法是將其默認實現類的內容復制,然后修改了上圖中的標識處,然后配置到xml文件中。
上面就是我自定義的類型解析器,內容拷貝了默認實現。然后照下面這樣修改了:
配置到xml:
差不多就這樣。ok了。