2017-06-22 137 views
1

我現在用springboot使用Mybatis。我沒有添加mybatis-config.xml。我爲數據源和MyBatis的所有配置通過application.propertiesmybatis-spring-boot-autoconfigure說明如下如何映射EnumOrdinalTypeHandler for mybatis-spring-boot?

### Database Configuration 
spring.datasource.url=jdbc:sqlserver://localhost;databaseName=mywebsite;catalogName=mywebsite 
spring.datasource.username=sa 
spring.datasource.password=root 
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver 

### Mybatis Configurations ### 
mybatis.type-aliases-package=com.mycom.myproducts.mywebsite.config.bean 
mybatis.type-handlers-package=org.apache.ibatis.type.EnumOrdinalTypeHandler 
mybatis.mapperLocations=classpath:mybatis/mapper/**/*.xml 
mybatis.configuration.default-fetch-size=100 
mybatis.configuration.default-statement-timeout=30 

問題是MyBatis的不能映射我的枚舉類型和錯誤顯示

Caused by: org.apache.ibatis.executor.result.ResultMapException: Error attempting to get column 'gender' from result set. 
Cause: java.lang.IllegalArgumentException: No enum constant com.mycom.myproducts.mywebsite.config.bean.config.UserBean.Gender.0 

這可能是通過固定與mybatis-config.xml

<typeHandlers> 
     <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.mycom.myproducts.mywebsite.config.bean.config.UserBean$Gender"/> 
    </typeHandlers> 

,但我不知道怎麼能這樣通過進行文件?

回答

1

您需要直接指定一個包而不是TypeHandler類。

所以,你可以用它作爲下一個:

mybatis.type-handlers-package=org.apache.ibatis.type 

手冊頁說型處理器封裝獲得包搜索類型別名。

type-handlers-package用於搜索類型處理程序的軟件包。 (包 分隔符是「,; \ t \ n」)

+0

您好!謝謝兄弟...我認爲這似乎工作,但我有例外 '由於:org.apache.ibatis.type.TypeException:無法找到類org.apache.ibatis.type.UnknownTypeHandler'的可用構造函數和 '由:java.lang.NoSuchMethodException引起:org.apache.ibatis.type.UnknownTypeHandler。 ()'。我該怎麼辦 ?問候。 – Cataclysm

+0

你能描述一下工作示例代碼嗎?請親切... – Cataclysm